为什么必须使用 sudo 才能使 ssh 公钥认证正常工作?

为什么必须使用 sudo 才能使 ssh 公钥认证正常工作?

除非使用 sudo,否则我无法从我的计算机 (OS X) ssh 到我的 raspberry pi (ubuntu mate)。我正在使用公钥/私钥对进行身份验证。

适当的公钥被添加到树莓派上的authorized_users文件中。

我的.ssh 目录的权限是 700。我的密钥文件的权限是 600。

这是带有 -v 标志的 ssh 的输出:

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/username/.ssh/id_rsa
debug1: Authentications that can continue: publickey 
debug1: Trying private key: /Users/username/.ssh/id_dsa
debug1: No more authentication methods to try. Permission denied (publickey).

ls:

-rw------- 1 username staff 3326 May 18 23:24 id_rsa 
-rw-r--r-- 1 username staff 752 May 18 23:24 id_rsa.pub 

.ssh:

drwx------  11 username   staff    374 May 19 21:49 .ssh

答案1

你可能共享了 root 的 ssh 密钥,可能是因为sudo你在执行 时执行了ssh-copy-id。确保username的公钥也在authorized_keys目标上

答案2

这里似乎存在脱节。您一直说 authorized_users;其他人一直说 authorized_keys。用户的公钥放在用户主目录中的名为 .ssh/authorized_keys 的文件中,而不是 .ssh/authorized_users。由于 ssh 适用于 root,因此您可能需要查看 ~root/.ssh 的目录,并使 ~user_name/.ssh 的目录看起来相同 - 当然,除了密钥是该用户的密钥,而不是 root 的密钥。

相关内容