我在 Ubuntu 机器上进行了以下设置:
~/dotfiles/authorized_keys2
~/.ssh/authorized_keys2 -> /home/wayne/dotfiles/authorized_keys2
我在 Arch 机器上有相同的设置,但是当我使用 -v 连接时,
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/wayne/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
我发现这一页在 Arch Wiki 上,有这样一行:
$ chmod 600 ~/.ssh/authorized_keys
所以我添加了另一个符号链接:
authorized_keys -> /home/wayne/dotfiles/authorized_keys2
但仍然没有骰子。是的,我有确保 中存在正确的密钥authorized_keys
。
为什么我无法使用我的密钥进行连接?
编辑:
我的权限在我的 home 和 ssh 文件夹(和密钥文件)上正确设置:
drwxr-x--x 150 wayne family 13k Aug 27 07:38 wayne/
drwx------ 2 wayne family 4.1k Aug 27 07:24 .ssh/
-rw------- 1 wayne family 6.4k Aug 20 07:01 authorized_keys2
答案1
authorized_keys
文件和指向该文件的目录的权限必须受到足够的限制:它们必须只能由您或 root 写入(如果您是该组中的单个用户,最新版本的 OpenSSH 还允许它们是组可写的)。看为什么使用公钥身份验证时,我仍然收到 ssh 密码提示?完整的故事。
在你的情况下,authorized_keys
是一个符号链接。从 OpenSSH 5.9 开始(我没有检查其他版本),在这种情况下,服务器会检查通往符号链接最终目标的权限,并扩展所有中间符号链接(规范路径)。假设 的所有组成部分除了最后一个是常规文件之外都是目录,OpenSSH 将检查、和/home/wayne/dotfiles/authorized_keys2
的权限。/home/wayne
/home/wayne/dotfiles
/home/wayne/dotfiles/authorized_keys2
如果您拥有服务器的 root 访问权限,请检查服务器日志中是否有以下形式的消息bad ownership or modes for …
。
答案2
我遇到了同样的问题,通过更改 /home/user 目录的权限得到解决,该目录不正确,应该是 chmod 755
答案3
如果 SELINUX 设置为 enforcing,并且authorized_keys 文件的规范路径具有任何目录的符号链接,则它将失败。您需要将 SELINUX 设置为禁用。