为什么我不能在 Arch Linux 上通过 ssh 使用公钥/私钥身份验证?

Way*_*ner 4 ssh arch-linux public-key-authentication

我在 Ubuntu 机器上有以下设置:

~/dotfiles/authorized_keys2
~/.ssh/authorized_keys2 -> /home/wayne/dotfiles/authorized_keys2
Run Code Online (Sandbox Code Playgroud)

我在我的 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
Run Code Online (Sandbox Code Playgroud)

我在 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
Run Code Online (Sandbox Code Playgroud)

Gil*_*il' 9

您的authorized_keys文件和通向该文件的目录的权限必须足够严格:它们必须只能由您或 root 写入(如果您是该组中的单个用户,最近的 OpenSSH 版本还允许它们是组可写的)。请参阅为什么我仍然收到带有公钥身份验证的 ssh 的密码提示?完整的故事。

在你的情况下,authorized_keys是一个符号链接。从 OpenSSH 5.9 开始(我没有检查其他版本),在这种情况下,服务器会检查通向符号链接最终目标的权限,并扩展所有中间符号链接(规范路径)。假设/home/wayne/dotfiles/authorized_keys2除了最后一个是普通文件之外的所有组件都是目录,OpenSSH 检查/home/wayne,/home/wayne/dotfiles和的权限/home/wayne/dotfiles/authorized_keys2

如果您在服务器上具有 root 访问权限,请检查服务器日志以获取形式为 的消息bad ownership or modes for …