SSH 连接在异常端口上被拒绝

SSH 连接在异常端口上被拒绝

使用 AWS EC2

从远程计算机发起到 AWS 的反向 SSH 隧道:

/usr/bin/autossh -M 0 -N -R 19999:localhost:22 [email protected] -v -i cloud.pem

在 AWS 安全组中添加了端口 19999。

检查是否可以通过 telnet 连接到 AWS:

telnet: Unable to connect to remote host: Connection refused

但是,如果我删除安全组中的端口 19999,我会得到不同的响应:

telnet: Unable to connect to remote host: Connection timed out

因此我认为问题出在 AWS 主机上,而不是另一台机器的防火墙上。

然后我检查sshd隧道是否已在 AWS 端启动,以响应我的连接。 netstat表明服务正在监听:

tcp        0      0 127.0.0.1:19999   

sshd但我仍然收到“连接被拒绝”消息。我还能分析什么?我在 AWS 机器上找不到任何日志。/var/log/secure不记录这些失败的连接尝试。

答案1

据我了解,您希望建立一个到 EC2 实例的反向隧道,然后允许外部客户端连接到指定的端口 19999。

首先,当您运行所提供的命令时,您可以通过 netstat 看到端口正在监听环回接口,因此为了使这个命令对外部起作用,您需要像这样在前面加上绑定地址:

/usr/bin/autossh -M 0 -N -R 0.0.0.0:19999:localhost:22 [email protected] -v -i cloud.pem

这仍然会给您带来错误,所以接下来您实际上要寻找的是在 EC2 上运行的 sshd 服务器中启用的 GatewayPorts 指令。

你应该编辑/etc/ssh/sshd_config并确保您拥有:

GatewayPorts clientspecified

在配置中定义。重新启动 sshd 服务器并使用上面提供的命令。有关此内容的更详细说明,请参见:使用反向 SSH 端口转发绕过公司防火墙

相关内容