首先检查服务器:
sudo vim /etc/ssh/sshd_config
然后把这两个修改为:
如果依然需要输入密码,在本地终端:
ssh -v user@server
查看认证过程,例如我这里提示说明客户端已成功尝试使用密钥认证:
进一步,查看服务器端日志:
sudo grep sshd /var/log/auth.log | tail -n 20
我这里提示:
可以定位是服务器端用户目录文件权限的问题,解决办法:
修复用户文件权限:
chmod 600 /home/${user}/.ssh/authorized_keys
chmod 700 /home/${user}/.ssh
chmod 755 /home/${user}
注: ${user}替换为你的用户名
检查权限是否正确:
ls -ld /home/${user}/
ls -ld /home/${user}/.ssh
ls -l /home/${user}/.ssh/authorized_keys
正确输出应该是:
drwxr-xr-x 7 ${user} ${user group} 4096 Jun 5 10:00 /home/${user}/
drwx------ 2 ${user} ${user group} 4096 Jun 5 10:01 /home/${user}/.ssh
-rw------- 1 ${user} ${user group} 403 Jun 5 10:01 /home/${user}/.ssh/authorized_keys
最后,重启ssh服务:
sudo /etc/init.d/ssh restart