jaymzleutz Asked: 2021-02-19 04:55:23 +0800 CST2021-02-19 04:55:23 +0800 CST 2021-02-19 04:55:23 +0800 CST 使用密钥(无密码)的 SSH 连接遵循单向流量? 772 我有一个关于 SSH 连接的一般性问题。已经查看了一些有关此事的相关帖子和文件,但找不到直接的答案。 使用密钥的 SSH 连接假定客户端有一个密钥对(公共和私有),而请求连接的服务器只有 pub 密钥。 我的问题是:由于一切都取决于只有通过私钥才能进行的解密,如果我们尝试采用“反向方式”(即“服务器”要求连接到“客户端”),我们是否应该期待拒绝? 泰 ssh ssh-keys 1 个回答 Voted Best Answer user1686 2021-02-19T05:09:33+08:002021-02-19T05:09:33+08:00 因为一切都取决于只能通过私钥进行的解密 不是解密。SSH 中的公钥认证使用另一端验证的签名。(客户端验证服务器的主机密钥和服务器验证用户的个人授权密钥都是如此。) 虽然某些算法(例如 RSA)以非常相似的方式执行签名和解密,并且可以为两者使用相同类型的密钥,但这并不意味着它们实际上是相同类型的操作。 如果我们尝试采用“反向方式”(即“服务器”要求连接到“客户端”),我们应该期待拒绝吗? 是的,但不完全是因为你提到的原因。 以相反方向建立的 SSH 连接彼此完全独立。客户端用于传出连接的公钥与服务器用于验证传入连接的公钥存储在不同的位置。(例如,在 Linux 上,客户端从文件中读取公钥,id_rsa.pub而服务器从authorized_keys文件中读取公钥。) 也就是说,即使系统在充当客户端时“拥有”公钥,但在充当服务器时,它仍然不会自动“拥有”相同的公钥。因此,在您的示例中,即使您实际上将私钥从“客户端”复制到“服务器”并尝试反向连接,您仍然会遭到拒绝。
不是解密。SSH 中的公钥认证使用另一端验证的签名。(客户端验证服务器的主机密钥和服务器验证用户的个人授权密钥都是如此。)
虽然某些算法(例如 RSA)以非常相似的方式执行签名和解密,并且可以为两者使用相同类型的密钥,但这并不意味着它们实际上是相同类型的操作。
是的,但不完全是因为你提到的原因。
以相反方向建立的 SSH 连接彼此完全独立。客户端用于传出连接的公钥与服务器用于验证传入连接的公钥存储在不同的位置。(例如,在 Linux 上,客户端从文件中读取公钥,
id_rsa.pub
而服务器从authorized_keys
文件中读取公钥。)也就是说,即使系统在充当客户端时“拥有”公钥,但在充当服务器时,它仍然不会自动“拥有”相同的公钥。因此,在您的示例中,即使您实际上将私钥从“客户端”复制到“服务器”并尝试反向连接,您仍然会遭到拒绝。