SSH 公钥适用于 root,但不适用于用户

SSH 公钥适用于 root,但不适用于用户

可能的重复:
为什么使用公钥身份验证时,我仍然收到 ssh 密码提示?

我正在设置远程服务器。配置sshd为仅使用公钥。远程计算机上有两个具有相同的帐户.ssh/authorized_keys,因此我可以使用相同的密钥登录。两者之一是 root,当我尝试时:

ssh -i /path/to/privatekey [email protected]

我进去了,没问题。但是,当我尝试其他(非特权)用户时:

ssh -i /path/to/privatekey [email protected]

它失败。 -v揭示了:

debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /path/to/privatekey
debug1: Authentications that can continue: publickey
debug1: Trying private key: /path/to/privatekey
**debug1: key_parse_private_pem: PEM_read_PrivateKey failed**
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/path/to/privatekey': 

成功 root@server 登录后不会出现带星号的行。这也很奇怪,因为ssh-agent已经有了该密钥的密码;系统不会要求我使用 root@server 登录。 bob@server 登录失败结束:

debug1: read PEM private key done: type DSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

权限等/home/bob/.ssh正确[但 .ssh 目录上没有执行位,请参阅注释]。这实际上是系统升级/重新安装,我有以前的备份,/etc包括sshd配置。我没有更改任何内容(尽管当我允许密码验证时,bob 可以进入),这就是我之前通过 git 使用系统的方式——所以我有一堆项目git remoteID 通过 ssh 键入使用 bob@server ,并且不想改变这些,因为我无法像sshd以前那样工作......

答案1

请确认以下事项:

  1. 目录的权限.ssh为700。进入目录需要有目录的执行权限。

  2. 文件权限authorized_keys必须为600。

作为一名系统管理员,我也遇到过这样的问题。

相关内容