奇怪的 SSH 行为

奇怪的 SSH 行为

我有3台电脑。所有都运行 SSH,并且都启用无密码模式,仅 PKI。

第一个有一个密钥对,用于通过 SSH 访问另外两个,将此机器称为 A。

因此,B 和 C 的 中都有 A 的公钥authorized_keys,并且 A 可以在没有密码的情况下通过 ssh 连接到其中任何一个。

但是,C 的文件中没有 B 的公钥authorized_keys,但是,当我从 A -> B 进行 ssh,然后从 B -> C 进行 SSH 时,C 让 ssh 会话无需密码即可连接。

为什么会发生这种情况?

尽管我是从 A 通过 SSH 连接到 B,但 C 肯定应该拒绝来自 B 的会话请求吗?

答案1

你应该照顾ssh-agentAllowAgentForwarding

您 A 上的私钥必须加载到您的本地ssh-agent.并且AllowAgentForwarding必须被激活,以便C上生成的到B的挑战由B转发到A(在信任链中)。 Assh-agent正在回复由 B 转发的 C 的加密挑战,该挑战在 C 上对您进行身份验证并让您从 B 进入其中。

在 B 和 C 上的 sshd 中禁止AllowAgentForwarding,它就不会再发生了。

相关内容