如何使用 Linux 机器通过 ssh 隧道传输 Windows 远程桌面?

如何使用 Linux 机器通过 ssh 隧道传输 Windows 远程桌面?

我的家庭网络中有两台物理服务器,linux(192.168.8.x)和windows server 2008(192.168.8.y)。

Linux 服务器可通过非标准端口(例如 23008)上的 ssh 从外部访问。如何在 Linux 机器上通过 ssh 建立永久 RDP 隧道?我知道我可以在外部机器上使用 putty,但我不知道如何在 Linux 机器上正确设置 sshd。谢谢任何提示!

答案1

假设你的 Linux 机器可以通过互联网上的 1.2.3.4 端口 23008 访问,在外部系统上我会这样做:

external% ssh -p 23008 -L 13389:192.168.8.y:3389 [email protected]

然后我将使用以下命令连接到端口转发的 RDP 系统

external% rdesktop localhost:13389

如果您的外部盒不是 Linux 盒,那么您拥有的工具将会有等效的命令;想法仍然是一样的:将外部的端口 13389 转发到 192.168.8.y 的端口 3389,然后使用外部的 RDP 客户端连接到localhost:13389

您指的是正确设置 Linux 机器的 sshd,但除非您重新配置它,否则标准 sshd 设置很可能就能很好地支持这一点。

答案2

ssh -L 3389:<ip of windows server>:3389 <ip of ssh server> -l <ssh user> -N

假设 3389 是您的 RDP 正在运行的端口,并且 ssh 服务器可以访问该端口,那么您就可以连接到 127.0.0.1:3389,就好像它是远程服务器一样。

答案3

可以使用内部 ssh 隧道雷米娜远程桌面客户端也是如此。

如果您可以使用 ssh 密钥通过 ssh 连接到某个 Linux 服务器,并且该服务器为来自您机器的数据包开放了 3389(RDP)端口,那么您可以使用以下设置通过 ssh 隧道进行 RDP。

在配置文件编辑器设置中基本的选项卡与直接连接相同。转到SSH 隧道选项卡并像这样设置隧道:


[x] 启用 SSH 隧道

(o)自定义 [ssh/linux 服务器的 ip/主机名]

SSH 身份验证:

用户名:[ssh/linux 服务器上的用户名]

(o)公钥(自动)


使用这些选项 Remmina 打开

ssh -L 3389:[target windows server]:3389 [linux server] -N

然后通过该 ssh 通道连接 RDP 会话。

如果您使用用户名/密码登录到 Linux 服务器或者使用不同的身份文件,则必须更改配置文件设置的 SSH 身份验证部分。

相关内容