![使用私钥通过管理服务器进行PuTTY ssh隧道端口转发](https://linux22.com/image/1573863/%E4%BD%BF%E7%94%A8%E7%A7%81%E9%92%A5%E9%80%9A%E8%BF%87%E7%AE%A1%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%9B%E8%A1%8CPuTTY%20ssh%E9%9A%A7%E9%81%93%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91.png)
我会尽量讲得详细一些。
我尝试连接到运行 ActiveMQ 的服务器,并希望将端口 8161 转发到本地机器上的端口 8162,以防止在我的计算机上运行 ActiveMQ 的本地实例时出现问题。
但是要访问 ActiveMQ 服务器,我必须首先连接到为我提供网络访问权限的管理服务器。
管理和 ActiveMQ 服务器上都有我的公钥,用于使用我的私钥在这些服务器上进行身份验证。
我使用 Pageant 是为了不必总是输入私钥的密码。
路径:本地计算机 -> 管理服务器 -> ActiveMQ 服务器
由于我必须以这种方式管理和监控许多其他服务器,因此我编写了一个批处理脚本,以便使用我的私钥直接访问所有这些服务器。因此,我自然希望使用脚本来执行此操作。另一方面,我的同事只是偶尔连接到其中一些服务器,并希望使用 GUI(在本例中为 PuTTY)来访问它们。
总结
通过跳转服务器 (SV_B) 将目标服务器 (SV_C) 上的端口 8161 转发到本地机器 (LM) 上的端口 8162,并使用私钥在 CLI 和 GUI 上使用 PuTTY 在 SV_B 和 SV_C 上进行身份验证。
LM:8162 -> SV_B -> SV_C:8161
更新
我让 GUI 部分工作了:
- 会话:主机名/IP 地址 = [管理服务器];端口 = “22”
- 连接->数据:自动登录用户名 = “root”
- 连接->SSH:远程命令 = “ssh -L 8162:localhost:8161 [AMQ 服务器]”
- 连接->SSH->Auth:允许代理转发
- 连接->SSH->隧道:源端口 = 8162;目标 = localhost:8162
现在的问题是如何将其转换为可以在 putty.exe 脚本中使用的命令
答案1
好的,我终于让命令起作用了:
plink.exe -ssh -A -L 8162:localhost:8162 root@SV_B ssh -L localhost:8162:localhost:8161 root@SV_C