![如何使用 Linux 机器通过 ssh 隧道传输 Windows 远程桌面?](https://linux22.com/image/529731/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Linux%20%E6%9C%BA%E5%99%A8%E9%80%9A%E8%BF%87%20ssh%20%E9%9A%A7%E9%81%93%E4%BC%A0%E8%BE%93%20Windows%20%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%EF%BC%9F.png)
我的家庭网络中有两台物理服务器,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 身份验证部分。