一、SSH 三步解决免密登录
1.客户端生成公私钥
2.上传公钥到服务器
3.测试免密登录
1.客户端生成公私钥
本地客户端生成公私钥:(一路回车默认即可)
ssh-keygen
上面这个命令会在用户目录.ssh文件夹下创建公私钥
cd ~/.ssh
ls
下创建两个密钥:
id_rsa (私钥)
id_rsa.pub (公钥)
2.上传公钥到服务器
这里测试用的服务器地址为:192.168.235.22
用户为:root
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.235.22
上面这条命令是写到服务器上的ssh目录下去了(也可以去打开authorized_keys将内容写进去即可)
cd ~/.ssh
vim authorized_keys
可以看到客户端写入到服务器的 id_rsa.pub (公钥)内容。
3.测试免密登录
客户端通过ssh连接远程服务器,就可以免密登录了。
ssh root@192.168.235.22
二、检查AuthorizedKeysFile配置是否启用authorized_keys
$ cat /etc/ssh/sshd_config |egrep AuthorizedKeysFile
#AuthorizedKeysFile .ssh/authorized_keys
$ sudo vi /etc/ssh/sshd_config
找到这行,把注释解开:
AuthorizedKeysFile .ssh/authorized_keys
三、查看系统安全日志,定位问题
执行sudo cat /var/log/secure
查看系统的安全日志,然后在安全日志中看到SSH登录过程中提示了如下错误:
找到问题:Authentication refused: bad ownership or modes for directory /home/root
后面的目录代表权限不匹配
解决:
chmod 700 ./.ssh
chmod 600 ~/.ssh/authorized_keys
PS:SSH进行认证的过程中除了对用户目录有权限要求外,对 .ssh 文件夹和 authorized_keys 文件同样也要限制。
(可选)重启SSH服务
$ service sshd restart