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

Dus*_*yte 8 server ssh networking lan sshd

运行 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
Run Code Online (Sandbox Code Playgroud)

然后提示就在那里。

更多调试信息来自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
Run Code Online (Sandbox Code Playgroud)

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

Gri*_*zly 5

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

route -n

默认路由应该指向该路由器,否则,您将能够通过它发起连接,但 ACK 将不会到达任何地方!


mec*_*oll 1

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


wlr*_*r70 1

您要声明用户吗?

ssh Jimmy@65.76.97.222 -p51555

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

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