ssh添加授权失败
作者:Zhan-bin
日期:2018-6-30
ssh 的原理是通过非对称加密算法RSA的原理,生成一对密钥(一个公钥和一个私钥),公钥用于解密,私钥用于加密,主机使用私钥加密验证信息发送给需要被请求远程的机器,被请求的机器用发起请求的主机的公钥解密信息验证其身份。(其原理类似于数字签名技术)
(这里举例:我主机是master,需要免密码登陆到sclver1)
- (1)查看id_rsa.pub的路径,
1
2cd ~/.ssh/
ls
看看有没有id_rsa.pub这个文件,如果没有就去主目录下查看(一般在生成密钥的时候命令行的路径)。1
2cd
ls
都没有的话建议重新生成。
- (2)在master里面进入ssh目录,打开id_rsa.pub和authorized_keys有没有自己的公钥在里面,正常情况下里面都是这个样子(如果本地可以免密登陆就忽略这一步):
1
2cd ~/.ssh/
vi id_rsa.pub
1 | cd ~/.ssh/ |
如果没有id_rsa.pub这个文件或者里面没有内容的话就重新生成再加入到自己的授权当中去
如果有 id_rsa.pub,authorized_keys没有内容的话就重新加入授权。
进入到id_rsa.pub所在目录操作以下命令
1
cp id_rsa.pub ~/.ssh/authorized_keys
(2)查看被访问机器authorized_keys文件
在slaver1进入到ssh目录下,打开authorized_keys查看有没有将需要访问的主机上的公钥在里面,如下图所示,这里红色框里面的就是master的公钥。1
2cd ~/.ssh/
vi authorized_keys
如果没有就重新加入(进入到id_rsa.pub所在目录操作以下命令):1
cp id_rsa.pub ~/.ssh/authorized_keys
- 如果还不行就手动将id_rsa.pub的内容追加到authorized_keys中。
如果有主机公钥的话就检查与主机上的id_rsa.pub里的公钥内容一不一样,不一样的话就将被访问机器的那个主机的公钥删掉按上述办法重新加入。
如果还是没用且之前改过文件夹权限的话可能是文件夹权限造成的ssh出现问题,可以改下文件夹权限
sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。
用户目录权限为 755 或者 700,就是不能是77x。
.ssh目录权限一般为755或者700。
rsa_id.pub 及authorized_keys权限一般为644
rsa_id权限必须为600