我有以下设置:我有笔记本电脑 A、计算机 B 和远程计算机 C。C 只能通过 ssh 从 B 访问,B 可以从 A 通过 ssh 访问或直接使用。 A 总是直接使用。
我设法以这样的方式设置 ssh 密钥,从 A 连接到 B 或从 B 连接到 C 时不需要输入密码。
但是当我从 A 连接到 B,然后尝试 ssh 到 C 时,我仍然需要输入密码 - 如何使用 B 上明显可用的密钥,因为如果我登录到,我就可以使用它直接B?
答案1
当从 A 通过 B SSH 到 C 时,使用显示ssh -vv REMOTE
未找到 B 上的密钥。输出结束于
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /u/USER/.ssh/id_dsa
debug1: Trying private key: /u/USER/.ssh/id_ecdsa
debug1: Trying private key: /u/USER/.ssh/id_ed25519
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
此外,我注意到我没有命名私钥id_dsa
或id_rsa
但是id_rsa_cluster
。我使用修复了这个
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa_cluster
现在,密钥已找到,我无需输入密码即可登录。
我目前无法物理访问B,因此无法检查为什么直接登录B时会找到密钥。但一旦可以,我会添加这个。
答案2
AllowAgentForwarding
需要在 B 上启用sshd_config 选项。SSH 客户端可能还需要启用代理转发。