我需要在Windows中使用PuTTY创建SSH隧道,这与Linux中的此命令相同:
ssh -fN -L 2000:SomeIp:2000 myusername@myLinuxBox
我在PuTTY中尝试了很多选项,包括将GUI中的源端口设置为“2000”,将目标设置为“SomeIp:2000”。目的地设置为本地(如-L
开关所示)。
我成功登录了我的SSH盒子,但未进行端口转发。
这在Windows中是否可行,因此使用此端口(2000)的程序所做的所有连接都将通过此隧道?
答案 0 :(得分:21)
使用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。
答案 1 :(得分:11)
您可能希望使用plink.exe
而不是GUI客户端。命令行语法与iirc兼容。
答案 2 :(得分:11)
或者你可以通过putty GUI进行跋涉,这也允许这样做。请参阅左侧的Connection > SSH > Tunnels
和选项树。
答案 3 :(得分:1)
以上答案提到了解决问题的两种不同方式:
我没有plink,也无法下载plink.exe文件(这是一个受严格监控的受限环境),因此使用了一种单行脚本来编写解决方案脚本:
start putty -ssh myusername@myLinuxBox -pw my_pw -L 2000:localhost:2000
将此文件存储在批处理文件中(文件扩展名为“ .bat”,例如“ tunnel.bat”)。因此,每次您双击该文件时,都会运行命令,而腻子将创建ssh隧道。如果您想要更多的隧道,只需重复此部分
-L 2000:localhost:2000
相应地更改端口。
答案 4 :(得分:0)
“源”端口是运行腻子的同一台计算机上的端口号(例如,在浏览器中打开该端口:127.0.0.1:source)。 “目标”是您要从本地计算机连接到的远程端口。我意识到这一点后便开始工作。