已经把公钥添加到~/.ssh/authorized_keys文件之后,有时候依然无法实现免密码登录。后来才发现,是因为有些文件的权限放大了。想想也是,如果authorized_keys文件,是其他用户也能编辑的。那岂不是多了个后门,可以帮助其他用户绕到当前用户了。
所以重点在于几个关键文件是否把权限集中在自己手上,并且无论如何是不允许其他用户编辑的。
总结为以下几条命令

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

有时候,光有上面两句还搞不定,我发现还得追加一句

chmod 755 ~