客户端升级后,某些 ssh 端口转发操作不允许,但可以交互

客户端升级后,某些 ssh 端口转发操作不允许,但可以交互
  • 主持人:Amazon Linux with OpenSSH 6.6.1, OpenSSL 1.0.1k-fips 8 Jan 2015
  • 客户:Win 10 with Cygwin OpenSSH 7.3p1, OpenSSL 1.0.2h 3 May 2016

我可以毫无问题地以交互方式进行 ssh:

win10$ ssh [email protected]
aws$

此端口转发也有效:

win10$ ssh -NTL 9003:localhost:80 [email protected] &
win10$

我使用后者通过以下方式访问服务器上的 phpmyadmin:

http://phpmyadmin.localhost:9003

效果很好。

为了使用 netbeans 调试服务器上运行的 php 代码,我这样做:

win10$ ssh -NTR 9000:localhost:9000 [email protected] &

以前这个方法还可以。但是在升级 Cygwin 之后,我现在得到:

ssh: connect to host example.com port 22: Operation not permitted

在命令行中添加 -vvvv 不会提供更多信息:

win10$ ssh -vvvv -NTR 9000:localhost:9000 [email protected]
OpenSSH_7.3p1, OpenSSL 1.0.2h  3 May 2016
debug1: Reading configuration data /home/user/.ssh/config
debug2: resolving "example.com" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to example.com [nn.nn.nn.nn] port 22.
debug1: connect to address nn.nn.nn.nn port 22: Operation not permitted
ssh: connect to host example.com port 22: Operation not permitted

我相信之前为我工作的 ssh 版本是Cygwin on WinXP with OpenSSH 7.1p2, OpenSSL 1.0.2f, 28 Jan 2016

服务器上没有任何变化。由于端口 9000 没有特权,因此我认为这不应该是权限问题,尤其是因为服务器配置没有改变,但我不得不承认端口转发对我来说基本上是魔术。有什么想法可能出错或如何收集更多/更好的信息?

答案1

这并不能算是一个好答案,这只是我观察到的情况。我重启了我的 Win10 PC,应用了一些待处理的更新。我还安装了 Eset Internet Security,并将防火墙过滤模式设置为交互模式。重启后,当我尝试之前失败的转发时,Eset 提示 ssh.exe 已被修改,并询问是否可以保留允许其发起流量的规则。我说没问题,然后它又开始工作了。重启之前,Eset 没有任何抱怨。如前所述,端口 9003 的转发工作正常。

我不知道从这次经历中我能学到什么,除了 XP 时代常见的 Windows 口头禅“运行 Windows 更新,并频繁重启”,但这个问题现在已经解决了!

相关内容