利用ssh穿越多级跳板访问云端内网远程桌面RDP的简单办法
微软的远程桌面RDP协议及其客户端是个奇葩,不能设置代理,只能用他家的Windows建立一个RDP Gateway中转。本文描述了如何通过ssh多级跳板形成的隧道,使用微软的客户端访问远程RDP服务。
首先,建立ssh跳板拓扑。
在访问者机器上完成下文博客提到的“利用ssh穿越多个跳板机最简单最高效的办法”
https://zhuanlan.zhihu.com/p/55016458
上面提到的访问者机器是Linux或者MacOS,如果是Windows 10,请安装Ubuntu for windows 10,在这个和Windows 10共生的ubuntu 18.04里完成上述步骤。Windows 7需要借用putty另起炉灶,因为它理解openssh的ssh config比较困难。
其次,设置跳板以建立SSH隧道。
选择可以路由到上述IP或者域名的最后的跳板机,比如名为jumper4,将访问者机器的公钥放到它的~/.ssh/authorized_keys,在访问者机器上,启动终端命令行运行 ssh -o ServerAliveInterval=10 -gfND 1080 jumper4,建立ssh隧道并带端口转发。
然后,强行代理远程桌面客户端。
下载一个游戏工具sockscap64,https://www.sockscap64.com/zh-hans/homepage/,下载完毕,解压即可运行,点开Proxy按钮,点左下方加号按钮,增加一行Proxy Address填127.0.0.1, Port填1080,SOCKS Type选SOCKS5,点右下角Save按钮保存。然后资源管理器打开C:\Windows\System32\, 把mstsc.exe拖进sockscap64主窗口空白处放下,确保Current Proxy选择"Local - SOCKS 5 - [127.0.0.1:1080]" 的情况下,双击mstsc图标,等待几秒就会出现微软远程客户端登录界面,输入远程内外IP即可登陆。
这期间SSH隧道窗口和sockscap64需要运行。