当您从机器 C SSH 进入 ssh 隧道 B->A 时,私钥会发生啥情况?
Posted
技术标签:
【中文标题】当您从机器 C SSH 进入 ssh 隧道 B->A 时,私钥会发生啥情况?【英文标题】:What happens to the private key when you ssh from machine C into an ssh tunnel B->A?当您从机器 C SSH 进入 ssh 隧道 B->A 时,私钥会发生什么情况? 【发布时间】:2017-10-27 12:44:31 【问题描述】:我对当前设置中的私钥会发生什么有一些疑问。
设置:
我有 3 台机器:A、B、C。A 和 C 没有公共 IP,B 有公共 IP。我想从机器 C 访问机器 A:A
我有一个反向隧道连接 A
ssh [options] -R PORT_B:localhost:PORT_A USER_B@B_PUBLIC_IP -i user_B_private_key.pem
所以,通过这条隧道,我可以使用以下命令从机器 B SSH 到机器 A:
ssh -p PORT_B USER_A@localhost -i user_A_private_key
(注意:我不使用这个,并且机器 B 上没有 user_A_private_key)
通过这条隧道,我可以使用以下命令从机器 C SSH 到机器 A:
ssh -p PORT_B USER_A@localhost -i user_A_private_key
问题:
我想知道在最后一种情况下 user_A_private_key 会发生什么(使用隧道 A
明文密钥是否会离开机器 C? user_A_private_key 在这种方法中安全吗?这种方法安全和/或推荐吗?
注意:在机器 B 上的 SSH 服务器上,我允许 TCP 转发并使用 GatewayPorts(客户端指定)
【问题讨论】:
【参考方案1】:在 SSH 中,私钥永远不会离开客户端计算机。服务器只获取签名和公钥,证明拥有私钥。
【讨论】:
当我使用隧道 B ==> A 从 C SSH 到 A 时,C(客户端)连接到 B(服务器)并且 B(客户端)连接到 A(服务器)。所以我的问题仍然存在:在这种情况下,user_A_private_key 是否存储在机器 B 的某个地方? 您所说的“已知”是什么意思?不。正如我已经写的那样,私钥永远不会存储在直接机器上。 谢谢@Jakuje以上是关于当您从机器 C SSH 进入 ssh 隧道 B->A 时,私钥会发生啥情况?的主要内容,如果未能解决你的问题,请参考以下文章