我正在尝试使用 Windows 10 上的 Microsoft 远程桌面客户端通过从 Windows 10 计算机上的 SSH 客户端发起的 SSH 隧道连接到数据中心中的 Windows 服务器 20xx。
我记得在 Windows XP 时代,当连接到通过 SSH 隧道传输的远程 RDP 端口时,我需要向 Microsoft 远程桌面客户端指定 127.0.0.2:3389。
我正在运行全新安装的 Windows 10,并安装所有更新,但目前无法执行此操作。我尝试了 127.1.1.1(等)的变体,并更改了端口号,但没有成功。
我找到了这个帖子: 探测 RDP 端口
我首先从 Linux 测试了此方法,并且有效,因此我将命令改编为 Windows 版 git 中 git bash 自带的工具:
echo -ne '\x03\x00\x00\x2c\x27\xe0\x00\x00\x00\x00\x00'\
'Cookie: mstshash=eltons\r\n'\
'\x01\x00\x08\x00\x00\x00\x00\x00' |
connect localhost 3390 |
xxd -p |
xargs -0 printf 'RDP response: %s\n'
这将返回预期的响应,因此显然隧道正在按预期工作。
我还尝试过在 Windows\system32\drivers\etc\HOSTS 中设置主机名来欺骗远程桌面,但是将以下内容放入远程桌面只会旋转并超时:
远程服务器:3390
微软是否已经完全禁用此功能?
编辑:这是设置 SSH 隧道的配置的相关部分:
#REMOTEDESKTOPS
localforward 3390 10.0.0.111:3389
localforward 3391 10.0.0.121:3389
localforward 3392 10.0.0.122:3389
localforward 3393 10.0.0.123:3389
答案1
我遇到的根本问题是,我一次为许多主机设置了所需的所有远程访问,然后我跳到了将 127.0.0.2 设置为 HOSTS 文件中的地址的步骤,预计 Windows RDP 客户端会拒绝 127.0.0.1。显然,它现在接受 127.0.0.1。因此,对于我上面的例子,127.0.0.1:3390 是可行的。
我很好奇为什么 127.0.0.2 或任何其他变体不起作用。如果我需要查看主机的 SSH 密钥的指纹并且已经接受了 127.0.0.1 的指纹,我经常在 Linux 上使用这些变体。