我有服务器A,需要ssh免密登陆到服务器B,按照配置流程,我生成了公私钥,并将公钥放在服务器B上,通过命令:
ssh-copy-id -i ~/.ssh/id_rsa.pub "root@192.168.XXX.XXX"
service sshd restart #重启ssh服务
通过SSH命令,可以登陆到B服务器,
ssh root@192.168.XXX.XXX
这时按道理应该是不需要输入密码的,可是在实际操作中,我这边还是要求我输入密码,说明我的免密配置没有奏效。
我还有其他一台服务器C,通过A我能免密登陆到C, 说明问他出在服务器B,登上服务器B,
cd ~/.ssh
ll
可以查看到authorized_keys文件,
cat authorized_keys
可以看到里面有我服务器A的公钥,说明公私钥是没有问题的,这个时候就需要我们查看一下服务器B中的日志了
cat /var/log/secure
我看看到了我服务器(B)上到报错:
Feb 20 11:47:02 localhost sshd[6403]: Authentication refused: bad ownership or modes for directory /root
主要查看程序sshd的日志,日志上说我的/root目录权限不正确,我将B的root目录权限修正为
chmod 700 /root
就恢复正常了,能够免密登陆了。