通过 ssh 远程重启我的 ubuntu 机器后,我无法再 ssh 到该机器。 有人建议这是由于我的主目录正在加密里面锁着authorized_keys
。所以我逐字逐句地采纳了同样的建议,并添加AuthorizedKeysFile /etc/ssh/.authorized_keys
到我的 中sshd_config
。
但后来我Permission denied (publickey)
尝试了任何 ssh,包括ssh localhost
,结果中都显示“192.168.1.8 端口 63398 ssh2 中 myusername 的公钥失败” /var/log/auth.log
。我发现修复此问题的唯一方法是注释掉该AuthorizedKeysFile
设置(也许还可以执行sudo service ssh restart
)。当然,这又让我在重启后再次遇到 ssh 连接问题。
我的/etc/ssh/.authorized_keys
权限与原始权限一样为 600。~/.ssh/authorized_keys
有什么想法吗?
答案1
您说得对:
AuthorizedKeysFile /etc/ssh/.authorized_keys
并/etc/ssh/sshd_config
正确地将所有公钥从 移动~/.ssh/authorized_keys
到/etc/ssh/.authorized_keys
。
问题在于,文件/etc/ssh/.authorized_keys
的所有者root
和权限意味着只有可以读写该文件,而不是您登录的用户。600
root
要解决该问题,请让用户成为文件所有者,如果用户是,foobar
则执行以下操作:
sudo chown foobar /etc/ssh/.authorized_keys
其余一切保持原样。