SSH免密登录另一台服务器配置及注意事项
一、服务器生成ssh-key
1. 执行命令$ ssh-keygen -t rsa -P ""
回车后会在 ~/.ssh/ 下生成两个文件:id_rsa 和 id_rsa.pub,这两个文件是成对出现的
2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3. 重启SSH服务 $ service sshd restart
4. 测试免密登录本机 $ ssh localhost
(发现并没有成功,还是需要输入密码)
问题解决
需要做两件事:
一、检查AuthorizedKeysFile配置是否启用authorized_keys
$ cat /etc/ssh/sshd_config |egrep AuthorizedKeysFile
#AuthorizedKeysFile .ssh/authorized_keys
解决:
$ sudo vi /etc/ssh/sshd_config
找到这几行,把注释解开:
二、查看系统安全日志,定位问题
执行 sudo cat /var/log/secure 查看系统的安全日志,然后在安全日志中看到SSH登录过程中提示了如下错误:
找到问题:Authentication refused: bad ownership or modes for directory /home/root
后面的目录代表权限不匹配
解决:
(替换成你log中的目录)执行如下:
chmod 700 /root
chmod 700 ./.ssh
chmod 600 ~/.ssh/authorized_keys
PS:SSH进行认证的过程中除了对用户目录有权限要求外,对 .ssh 文件夹和 authorized_keys 文件同样也要限制。
(可选)重启SSH服务 $ service sshd restart