可能的重复:
为什么使用公钥身份验证时,我仍然收到 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 remote
ID 通过 ssh 键入使用 bob@server ,并且不想改变这些,因为我无法像sshd
以前那样工作......
答案1
请确认以下事项:
目录的权限
.ssh
为700。进入目录需要有目录的执行权限。文件权限
authorized_keys
必须为600。
作为一名系统管理员,我也遇到过这样的问题。