我正在尝试使用自春季更新以来 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 可用。然后
在终端中运行 python http 服务器(默认在端口 8000)
python -m http.server
创建反向连接 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