Putty 可以建立到 SSH 远程服务器的网关吗?

Putty 可以建立到 SSH 远程服务器的网关吗?

我的台式家用电脑(见下图)通过以下方式连接SSH 到 Office 服务器(当然是通过互联网)。

我连接到该服务器从我的家用电脑(运行 Linux)通过使用OpenSSH 客户端从 Linux(请注意-g“网关”开关):

ssh MyUser@OfficePublicIP -L 22222:172.26.0.10:22 -g

因此,当连接建立后,我有一个正在运行的 SSH到服务器的隧道对于我的局域网:

luis@HomeDesktop:~$ netstat -ano | grep "22222" -i
tcp        0      0 0.0.0.0:22222           0.0.0.0:*               LISTEN      off (0.00/0/0)

现在我可以去我的家用笔记本电脑并通过我的家庭桌面(运行 Windows)使用 PuTTY 打开到办公室服务器的 SSH 会话,操作如下:

PuTTY 192.168.0.101 -P 22222

该过程如下所示方案(沿着黑线):

家用台式机充当家用笔记本电脑到 Office 服务器的网关

问题是:我需要运行 Windows在我的家用电脑上,而不是 Linux。我当然更喜欢使用油灰SSH 客户端(我喜欢它的终端可配置性)。

但是 Putty v0.63 似乎没有这个 -g (网关)允许外部连接到转发(隧道)端口的选项。

我已经通过 putty 帮助 .chm 文件进行了研究,但 Putty 及其相关工具 PLink 似乎都没有此选项。

有人知道吗如何开辟隧道从我的家用台式机连接到办公室服务器,但是继续使用PuTTY

答案1

嗯...事实上,如果你想要的是只有整洁的 PuTTY 窗口在远程 SSH 会话中写入,您只能使用它来执行此操作,并使用(同时在另一个控制台中)任何其他SSH 客户端从 Linux 移植到 Windows。

例如,OpenSSH 客户端赛格威应该可以正常工作:

$ ssh -V
OpenSSH_6.6p1, OpenSSL 1.0.1f 6 Jan 2014

$ ssh
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
           [-D [bind_address:]port] [-E log_file] [-e escape_char]
           [-F configfile] [-I pkcs11] [-i identity_file]
           [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec]
           [-O ctl_cmd] [-o option] [-p port]
           [-Q cipher | cipher-auth | mac | kex | key]
           [-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port]
           [-w local_tun[:remote_tun]] [user@]hostname [command]

顺便说一下,语法与您在家用桌面上运行 Linux 时使用的语法相同。

ssh MyUser@OfficePublicIP -L 22222:172.26.0.10:22 -g

答案2

您可以修补/模拟网关选项是通过在主桌面上同时运行简单的端口转发器在另一个港口。

例如,我经常使用Windows 的端口转发(我更喜欢“旧命令行实用程序”,这样我就可以通过脚本自动执行它)。对于你的情况,假设 11111TCP 将是“过渡”端口:

c:\>trivial_portforward.exe 11111 127.0.0.1 22222

查看两个端口都在监听(在你的主桌面上):

c:\>netstat -ano | grep "11111" -i
TCP    0.0.0.0:11111          0.0.0.0:0              LISTENING       6724

netstat -ano | grep "22222" -i
TCP    127.0.0.1:22222        0.0.0.0:0              LISTENING       6028

现在,你可以这样做从你的笔记本电脑

c:\>PuTTY 192.168.0.101 -P 11111

SSH 连接必须成功。同时您应该在控制台上看到trivial_portforward确认信息:

received connection from 192.168.0.102
connection to 127.0.0.1:22222 established

注意:您必须使用127.0.0.1而不是localhost(请记住您的问题是 PuTTY 没有重定向,但是127.0.0.1)。

答案3

使用Putty / Kitty:

putty.exe MyUser@OfficePublicIP -L 0.0.0.0:22222:172.26.0.10:22

请注意指定以下0.0.0.0:部分any host传入连接-g到服务器上的 SSH 隧道。这相当于OpenSSH

netstat请注意Windows 机器上的命令结果(这次是正确的) :

C:\>netstat -ano | grep "22222" -i
TCP    0.0.0.0:22222        0.0.0.0:0              LISTENING       6028

相关内容