尽管端口转发似乎正常,但无法从外部LAN进行SSH


8

运行Ubuntu 12.04,我已经设置了OpenSSH服务器。我可以从局域网内部连接,但不能从外部连接。我正在使用与sshd_config其他Ubuntu 12.04计算机(位于不同LAN上)相同的文件。

$ ssh 192.168.0.2

工作正常,但是

$ ssh 65.76.97.222

(由IP地址组成)不起作用。什么都没发生。没有错误信息,或其他任何信息。提示就坐在那儿。

感谢下面的评论,我设法通过网站canyouseeme.orgShieldsUP验证了端口22确实是开放的。

使用该选项-vvv,我得到以下信息:

$ ssh -vvv 65.76.97.222
OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 65.76.97.222 [65.76.97.222] port 22.
debug1: Connection established.
debug1: identity file /home/myname/.ssh/id_rsa type -1
debug1: identity file /home/myname/.ssh/id_rsa-cert type -1
debug1: identity file /home/myname/.ssh/id_dsa type -1
debug1: identity file /home/myname/.ssh/id_dsa-cert type -1
debug1: identity file /home/myname/.ssh/id_ecdsa type -1
debug1: identity file /home/myname/.ssh/id_ecdsa-cert type -1

然后提示就坐在那儿。

来自var/log/auth.log以下方面的更多调试信息:

$ grep sshd /var/log/auth.log
[cutting old lines...]    
Jul  6 10:23:05 mymachine sshd[7871]: Did not receive identification string from 65.76.97.222

我允许任何用户连接,尤其是我自己的用户名。令我困惑的是,尽管它们在不同的局域网上,但我在其他任何计算机上都没有遇到这个问题。该局域网仅连接一台计算机。关于如何从这里进行的任何想法?


尝试使用详细选项(-v-vv-vvv)获得有关连接的额外信息。例如ssh -vvv -p 51555 65.76.97.222
AMC

检查转发端口canyouseeme.org
hwez 2014年

谢谢,我已经编辑了问题以反映您的评论。
DustByte

Answers:


3

有几件事需要您检查。

  1. 检查/etc/ssh/sshd_config并确保您没有任何有趣的AllowUsers条目。

  2. 将您要连接的用户指定为:

    ssh USER@SERVER
    ssh SERVER -lUSER
    
  3. 检查您的防火墙(iptables):

    sudo iptables -L --line-numbers
    sudo iptables -L -t nat --line-numbers
    

2

检查您的SSH服务器上的网关是否设置为进行端口转发的路由器。

route -n

默认路由应该指向该路由器,否则,您将可以通过该路由器发起连接,但是ACK不会随处可见!


1

需要检查端口转发是否正常工作,我通常通过以下方法进行检查:转到https://www.grc.com/shieldsup >继续>将您的端口号放入框中,然后单击用户指定的自定义端口探针。那应该告诉您该TCP端口是否实际上对公众开放


谢谢。我已经对问题进行了修改,以反映您的建议。但是问题仍然存在。
DustByte

很好,排除了网络,因此看起来像是配置问题。试试grep sshd /var/log/auth.log
meccooll 2014年

然后auth.logJul 6 10:23:05 mymachine sshd[7871]: Did not receive identification string from 65.76.97.222
将以下行

1

您要声明用户吗?

ssh Jimmy@65.76.97.222 -p51555

如果您按照使用方式提供了代码,那么我相信它将默认为当前用户名。

此外,您需要具有TARGET系统上的用户权限。在上面的示例“吉米”中


我确实有。我一直只与同一个用户建立连接,并且进一步sshd_config允许任何用户进行连接。
DustByte
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.