如何使用 linux box 通过 ssh 隧道连接 Windows 远程桌面?

els*_*sni 21 linux rdp ssh ssh-tunnel putty

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

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

Mad*_*ter 23

假设您的 linux box 可以在 1.2.3.4 端口 23008 上从互联网访问,在外部系统上我会这样做:

external% ssh -p 23008 -L 13389:192.168.8.y:3389 username@1.2.3.4
Run Code Online (Sandbox Code Playgroud)

然后我会连接到端口转发的 RDP 系统

external% rdesktop localhost:13389
Run Code Online (Sandbox Code Playgroud)

如果您的外部机器不是 linux 机器,那么您拥有的工具会有等效的命令;思路还是一样:将external的13389端口转发到192.168.8.y的3389端口,然后使用external的RDP客户端连接到localhost:13389.

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


One*_*roi 14

ssh -L 3389:<ip of windows server>:3389 <ip of ssh server> -l <ssh user> -N
Run Code Online (Sandbox Code Playgroud)

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

  • 就我而言,我得到了bind [127.0.0.1]:3389:权限被拒绝channel_setup_fwd_listener_tcpip:无法监听端口:3389无法请求本地转发。--------------&gt; 所以我所做的是使用不同的本地端口,例如 ssh -L 4444:&lt;server&gt;:3389 &lt;sshServer&gt; -l &lt;​​sshUser&gt; -N 中的 4444 (2认同)

and*_*rej 7

人们也可以从Remmina远程桌面客户端使用内部 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
Run Code Online (Sandbox Code Playgroud)

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

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

  • 杰出的。已经在使用 Remmina,以“ssh -L”方式进行操作,然后看到了您的答案,现在它全部融入到 Remmina 中的一个配置中。 (2认同)