SSH 公钥登录:两个不同的密钥和 SSH_AUTH_SOCK 行为

SSH 公钥登录:两个不同的密钥和 SSH_AUTH_SOCK 行为

user1Ubuntu 12.04 桌面上的用户 ( ) 配置了两个 SSH RSA 密钥:~/.ssh/id_rsa~/.ssh/id_rsa1(和.pub文件)。两个公钥均配置在服务器帐户 ( user1@myserver) 上的授权密钥中。

当登录到桌面(客户端)计算机并使用 Gnome 终端时,使用任一键登录到服务器都可以正常工作:

  • ssh user1@myserver隐式地拾起/home/user1/.ssh/id_rsa
  • ssh -f /home/user1/.ssh/id_rsa1 user1@myserver也有效。

localhost如果我不是通过 Gnome 桌面登录,而是通过 SSH 从另一台主机(甚至是)登录到客户端计算机,或者使用su,则 using/home/user1/.ssh/id_rsa不再有效。

SSH_AUTH_SOCK这似乎与(最初在使用 SSH 连接到客户端设置的环境中丢失)有关。如果我将其设置为桌面会话中可见的值/tmp/keyring-xxxxxxxxxxx/ssh,则登录id_rsa可以再次正常工作。

如果我取消设置SSH_AUTH_SOCK(使日志记录id_rsa再次失败)并复制id_rsa1id_rsa(和.pub文件),它现在也可以使用id_rsa

什么可以解释这两个密钥对之间的行为差​​异及其与 的相互作用SSH_AUTH_SOCK

我在服务器日志中看不到任何内容。

以下是 SSH 客户端日志的片段,就在它有所不同之前:

debug1: ssh_rsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /home/user1/.ssh/id_rsa (0x7f6b7059b260)
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/user1/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply

接下来,当它对该用户/密钥不起作用时:

debug1: Authentications that can continue: publickey,password
debug2: we did not send a packet, disable method

答案1

事实证明,不起作用的密钥authorized_keys毕竟没有在文件中正确配置。对于那个很抱歉...

我错误地认为这ssh -i /home/user1/.ssh/id_rsa user1@myserver表明它配置正确,但事实并非如此。它也使用其他键。强制ssh -i /home/user1/.ssh/id_rsa -oIdentitiesOnly=yes user1@myserver也会因配置不正确而失败。

我猜想使用 Gnome 登录时设置的 SSH 代理也会获取~/.ssh/目录中的其他密钥,这使得它可以与其他密钥一起使用,即使使用-i.

答案2

我实际上并不使用 gnome,但它很可能正在尝试与 ssh 代理进行通信(或者甚至为了方便起见启动一个)。

您没有提到您的密钥是否无密码。

副本中可能出现问题的另一件事是 a) user2 的 /home、b) 他们的 .ssh 或 c)authorized_keys 文件的权限。

相关内容