如何使用 PuTTY 创建多跳 SSH 隧道?

如何使用 PuTTY 创建多跳 SSH 隧道?

我有 5 个 VPS,我使用 OpenSSH 中的跳转命令从 My_Pc 连接到 VPS_5。

My_PC ==>VPS_1 ==>VPS_2 ==>VPS_3 ==>VPS_4 ==>VPS_5 ==>Internet

ssh -D80 root@VPS_5 -J root@VPS_1,root@VPS_2,root@VPS_3,root@VPS_4

首先我的 PC 连接到 VPS_1,然后 VPS_1 连接到 VPS_2,...我复制公钥,无需在任何 VPS 中输入密码。最后我使用 127.0.0.1:80 作为代理。


如何在PuTTY中实现上述示例?

请清楚完整地解释,我是新手。谢谢

答案1

你应该能够通过配置“本地代理命令”


对于一跳(相当于root@VPS_2 -J root@VPS_1),您可以使用本地代理命令,例如:

plink root@VPS_1

虽然这可以更容易地使用“SSH 代理并使用端口转发”


对于两跳(相当于root@VPS_3 -J root@VPS_1,root@VPS_2),您可以使用如下代理命令:

plink root@VPS_2 -proxycmd "plink root@VPS_1"

在此处输入图片描述


不确定三跳的正确语法是什么,因为它需要嵌套引号,而且我不知道它们转义的语法(如果可能的话)。

但无论如何,您都可以通过在 PuTTY 中hop_1_and_2为其他主机配置存储的站点(),然后在plink命令中调用它们来实现它:

plink root@VPS_3 -proxycmd "plink hop_1_and_2"

在所有情况下,您可能需要缓存各个跳数的主机密钥,然后才plink能够自动连接。

相关内容