ssh rsa 密钥不再适用于一个帐户

ssh rsa 密钥不再适用于一个帐户

我无法再在远程系统上的一个帐户上使用公钥。一段时间内它工作正常,但现在似乎不行了(每次登录时我仍然必须输入密码)。有一天,我让几个终端从同一台计算机远程登录到我的帐户(scp 和 ssh)(我还记得那天我更改了主目录的权限,有一次真的把它们弄乱了,我觉得这可能与此有关)。

当我运行 ssh -v 时:

debug1: Connection established.
debug1: identity file /Users/bobak/.ssh/identity type -1
debug1: identity file /Users/bobak/.ssh/id_rsa type 1
debug1: identity file /Users/bobak/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3
debug1: match: OpenSSH_4.3 pat OpenSSH_4*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'xxx.xxx.xxx.xxx' is known and matches the RSA host key.
debug1: Found key in /Users/bobak/.ssh/known_hosts:4
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/bobak/.ssh/identity
debug1: Offering public key: /Users/bobak/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Trying private key: /Users/bobak/.ssh/id_dsa
debug1: Next authentication method: password

知道发生了什么吗?计算机上还有其他帐户仍可使用 RSA 密钥,但我的帐户不行。我尝试重新创建密钥,甚至删除授权密钥文件并重新创建,还尝试从不同的计算机进行操作。

答案1

我修复了我的问题。我遇到的问题是权限问题。我的远程服务器位于 Dreamhost,因此他们可能已配置服务器设置,以便公钥/私钥像这样工作。这是我所做的,YMMV:

  1. 将每个帐户主文件夹中的权限更改为 751,但此方法无效。我假设您的设置至少需要这个,如果不是更强大的话。这对我有用……但我还做了其他步骤,您可以尝试一下。

  2. 将.ssh 中所有内容的权限更改为 600。

  3. 已切换到使用 DSA 而不是 RSA 的新密钥。这有点过分,但我加密了私钥,所以现在它要求我输入密码才能使用私钥。这只是一种安全措施。Mac OS X 允许我保存密码,这样就可以透明地完成这一切(即我不必输入密码)。

相关内容