user1
Ubuntu 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_rsa1
到id_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 文件的权限。