如何在 Windows 中使用 PuTTY 创建 SSH 隧道?
Posted
技术标签:
【中文标题】如何在 Windows 中使用 PuTTY 创建 SSH 隧道?【英文标题】:How to create SSH tunnel using PuTTY in Windows? 【发布时间】:2011-06-25 20:07:56 【问题描述】:我需要在 Windows 中使用 PuTTY 创建 SSH 隧道,这与 Linux 中的此命令相同:
ssh -fN -L 2000:SomeIp:2000 myusername@myLinuxBox
我在 PuTTY 中尝试了许多选项,包括将 GUI 中的源端口设置为“2000”,将目标端口设置为“SomeIp:2000”。目的地设置为本地(正如-L
开关所建议的那样)。
我成功登录到我的 SSH 框,但没有进行端口转发。
这在 Windows 中是否可行,以便使用此端口 (2000) 的程序建立的所有连接都将通过此隧道?
【问题讨论】:
【参考方案1】:使用 PuTTY 套件,您可以使用 PuTTY 本身 (GUI) 或使用命令行工具 plink.exe
设置隧道。
对于plink.exe
,您可以使用与OpenSSH ssh
相同的参数,但-f
除外,它在Windows 中没有等效参数。
plink.exe -N -L 2000:SomeIp:2000 myusername@myLinuxBox
参考:Using the command-line connection tool Plink
使用 PuTTY,-L 2000:SomeIp:2000
转换为:
所以实际上,你声称已经尝试过。如果您有任何问题,请使用 PuTTY 事件日志进行调查:
-N
转换为选项“根本不启动 shell 或命令”。
但是使用 GUI 客户端启用它可能没有意义,因为无论如何你都会得到一个窗口,你不能用它做任何事情。另请参阅PuTTY wish no-terminal-window。
如果您打算使用隧道将 PuTTY 连接到另一台服务器,您实际上可以使用plink
作为代理将隧道设置为会话设置的一部分,请参阅:PuTTY configuration equivalent to OpenSSH ProxyCommand。
【讨论】:
【参考方案2】:您可能希望使用plink.exe
而不是 GUI 客户端。命令行语法兼容iirc。
【讨论】:
我试过 plink ,但似乎端口没有转发。登录远程 sshbox 后如何检查端口是否转发? 我不知道有任何服务器端命令可以查看客户端创建了哪些隧道。也许有服务器故障的人可以帮助你:-)。 关于排查:本地端口转发规则只在本地打开一个监听端口。在您实际尝试连接到本地端口之前,不会创建转发(因此在远程端没有检测到任何东西)。【参考方案3】:或者您也可以浏览 putty GUI,它也允许这样做。请参阅左侧的Connection > SSH > Tunnels
选项树。
【讨论】:
我已尝试从 GUI 设置许多不同的 optins,但 forward 仍然无法正常工作。登录 sshbox 后如何显示所有转发?【参考方案4】:上面的答案提到了解决问题的两种不同方法:
使用 plink 使用 putty GUI我没有 plink,也无法下载 plink.exe 文件(这是一个受到严密监控的受限环境),因此使用了一种不同的方式来使用单行脚本编写解决方案:
start putty -ssh myusername@myLinuxBox -pw my_pw -L 2000:localhost:2000
将其存储在批处理文件中(文件扩展名为“.bat”,例如“tunnel.bat”)。因此,每次双击此文件时,都会运行命令,并且 putty 会创建 ssh 隧道。如果您想要更多隧道,请重复此部分
-L 2000:localhost:2000
通过相应地更改端口。
【讨论】:
好的,但这与 Plink 的作用相同。 @MartinPrikryl 当然。但是,我无法安装 plink,因为我没有权限。但我确实有腻子,想编写解决方案的脚本。这就是我的答案。 好的,所以也许在你的回答中提到这一点。 Ntb,Plink 不需要任何安装,直接抓取 .exe 文件即可。 @MartinPrikryl 谢谢 - 编辑完成。 Exe 下载被防火墙阻止,所以对我来说,这是编写解决方案脚本的唯一方法。【参考方案5】:“源”端口是运行 putty 的同一台机器上的端口号(例如,在浏览器中打开:127.0.0.1:source)。 “目标”是您要从本地计算机连接到的远程端口。在我意识到这一点后,它开始起作用了。
【讨论】:
以上是关于如何在 Windows 中使用 PuTTY 创建 SSH 隧道?的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 中使用 PuTTY SSH 到 Amazon EC2 实例
请问如何配置virtualbox使得可以在windows中可以使用putty连接Ubuntu