查了一下资料,大概原因如下:
不能让所有者之外的用户对authorized_keys文件有写权限。
不仅如此,如果authorized_keys文件、$HOME/.ssh目录 或 $HOME目录让本用户之外的用户有写权限,那么sshd都会拒绝使用 ~/.ssh/authorized_keys 文件中的key来进行认证。
用chmod对相关目录和文件进行了权限修改,依然无法免密登录。
试验出了一个笨办法:
删除.ssh文件夹,然后ssh登录其他主机,这样~目录下会自动重建一个.ssh文件夹。
然后vim .ssh/authorized_keys,输入个人电脑的公钥,退出登录后重新连接,发现不用输入密码了。
算是解决了,其中的原理后面再来探讨。