Spring 更新 Windows 10 ssh 客户端反向隧道不起作用

Spring 更新 Windows 10 ssh 客户端反向隧道不起作用

我正在尝试使用自春季更新以来 Windows 10 中可用的 ssh 客户端命令。

我不使用“OpenSSH 服务器”可选模块,并且它没有安装,我只使用“OpenSSH 客户端”

这个 ssh 命令似乎工作正常,我可以连接到远程 linux ssh 服务器,甚至可以使用以下命令进行 ssh 隧道连接

ssh -L 8080:localhost:11111 user@remote

然后从 Windows 客户端通过 localhost:8080 连接到我自己的应用程序。

但反向隧道似乎不起作用。以下命令:

 ssh -R 8080:localhost:11111 user@remote

正在运行并且端口在我的远程服务器上打开,如 nc 在我的远程 Linux 上显示的那样:

nc -v 127.0.0.1 8080
localhost.localdomain [127.0.0.1] 8080 (http-alt) open

但是反向隧道不起作用,我无法通过隧道进行通信。

这是 microsost ssh 实现中的错误吗?我做错了什么吗?

我已经完全禁用 Windows 防火墙,没有安装其他防火墙,并且连接到私人网络。

答案1

从 2018 年春季更新开始,Microsoft OpenSSH 实现中肯定存在一个错误。

如何测试:在本地(Windows 10)上,安装 Python3、Putty 并确保 ssh 可用。然后

  1. 在终端中运行 python http 服务器(默认在端口 8000)

    python -m http.server

  2. 创建反向连接 ssh 隧道

    ssh -R 8080:localhost:8000 user@remote

在远程,通过隧道使用 telnet 进行连接

>telnet localhost 8080
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

隧道仍在运行,但连接后 telnet 几乎立即断开连接。

如果您ssh使用 putty 中的 plink.exe 进行替换,它可以完美运行并且您可以通过浏览器进行连接。

您可以在这里找到我的错误报告:https://github.com/PowerShell/Win32-OpenSSH/issues/1265

相关内容