在 GNU/Linux 中我发现执行以下操作非常容易,但我很难让 Windows 用户通过相同的方法进行连接。
以下是我在 GNU/Linux 上所做的操作。您能否演示如何在 Windows 上执行相同操作。我们目前使用 PuTTY。还有其他选择吗?
GNU/Linux
未设置任何配置的原始命令如下所示:
ssh -J <jump-user>@<jump-host> <protected-user>@<protected-host>
可以创建~/.ssh/config
如下所示的 SSH 配置:
Host jump
User <jump-user>
HostName <jump-host>
Host protected
User <protected-user>
HostName <protected-host>
ProxyJump jump
然后你可以像这样 ssh:
ssh protected
答案1
-J
由于 0.77 PuTTY 具有“SSH 代理”功能,因此一个/的等效项是什么ProxyJump
:
https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter4.html#config-proxy
在连接 > 代理面板,选择“SSH 代理并使用端口转发”并指定跳转主机的详细信息。
对于旧版本,有两种替代方案(但设置起来稍微复杂一些):
转发端口。
您在一个 PuTTY 实例中打开与跳转主机的连接,并将本地端口转发到受保护的主机。有关此内容,请参阅:
如何在 Windows 中使用 PuTTY 创建 SSH 隧道?然后在另一个 PuTTY 实例中打开与转发端口的连接。
本地代理命令使用 Plink。
这相当于 OpenSSH
ProxyCommand
指令:
PuTTY 中的 OpenSSH ProxyCommand 等效项
除了PuTTY,还有Microsoft 为 Windows 构建的 OpenSSH。在 Windows 10 版本 1803 或更高版本中,OpenSSH 是内置的。在旧版本的 Windows 10 中,您可以将其安装为“可选功能”命名“OpenSSH 客户端”。您可以直接下载 ZIP 包。客户端工具无需任何安装,直接解压即可。
也可以看看OpenSSH 是否支持多跳登录?
答案2
我在 putty 中所做的是将主机设置为跳转机器。然后在连接 -> SSH 中,我将远程命令设置为ssh -Y <protected-user>@<protected-machine>
。不完全相同,但它指示 putty 在登录时立即运行 SSH 命令,当我关闭它时,整个过程都会关闭,因为该命令将完成。