我正在运行 Lubuntu 14.04 并设置了一个 SSH 服务器。由于一个令人困惑的事实,我花了很长时间来排除故障。
在家里,我可以使用我的本地 IP 地址(192.168.0.x
)或我的公共 IP 地址(路由器端口转发设置正确)通过 SSH 连接我的笔记本电脑。
如果我把笔记本电脑原封不动地带给我的朋友,我只能使用我的本地 IP 地址通过 SSH 连接到我自己,而不能使用我朋友的公共 IP 地址。啊哈,你会想,这是因为他的路由器上的端口转发设置不正确。好吧,这就是困惑所在:据我所知,它设置正确。也就是说,我确实可以使用我朋友的公共 IP 地址从他网络之外的计算机通过 SSH 连接到我的笔记本电脑。在他的网络内使用公共 IP 地址会导致登录停滞。
如果我这么做了,之内他的网络,
ssh -v *public_IP_addess*
停止前输出的最后两行是
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3
而执行相同的命令外部他的网络是成功的,上面几行后面是
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3 pat OpenSSH_6.6.1* compat 0x04000000
...
如何解释这种行为?为什么我在家时可以使用我的公共 IP 地址,但在朋友家却不能?
答案1
看起来您未能设置用户名。ssh USER@<ipaddress>
如果您未声明用户名,则使用当前用户。由于您使用的是朋友的笔记本电脑,因此您实际上正在执行的操作 ssh wrongUSER@<ipaddress>
您随后使用的密码或密钥与这个不存在的用户不匹配。我猜您在两台机器上使用的用户名相同。