ssh:连接到主机 myhostname.ddns.net 端口 22:连接被拒绝

ssh:连接到主机 myhostname.ddns.net 端口 22:连接被拒绝

我最近设置了一台本地机器和一台笔记本电脑,使用noip.com,这样我就可以在外出旅行时通过笔记本电脑访问本地(主机)计算机 - 请参阅我之前的问题这里

一切都运行良好 - 直到我想对机器(和路由器)进行冷重启 - 然后离开几个月。在按照我之前的问题中提供的所有步骤操作后,我发现我无法从笔记本电脑重新登录到服务器机器。

以下是一些显著的事实:

  1. 主机(要登录的)已运行 SSH 服务
  2. 主机配置了静态 IP 地址(与我之前使用的 IP 相同)
  3. 主机上运行无 IP 更新客户端
  4. 当我在同一个局域网中时,我可以使用本地 IP 地址 192.168.xx 从我的笔记本电脑通过 SSH 进入主机
  5. 注册的 NO-IP 地址尚未过期(我几天前才注册的 - 我通过登录我的帐户仔细检查了它 - 它有任何正确的面向公众的 IP 地址)
  6. 路由器上已设置端口转发,SSH 在默认端口 22 上运行。

[[更新]]

$sudo ufw status
To     Action     From
22     Allow      Anywhere
22(v6) Allow      Anywhere (v6)

Fail2ban 已安装在主机上,并且与我之前的设置配合良好。我目前已停止该服务,同时尝试弄清楚发生了什么。

主机上已设置 SSH,配置如下:

  • 端口 22
  • PermitRootLogin 否
  • 公钥认证 是
  • 密码验证否

当我尝试使用从 no-ip 注册的主机名远程 SSH 时,出现以下错误(直到昨天为止,这都运行正常):

ssh -v [email protected]
OpenSSH_6.9p1 Ubuntu-2ubuntu0.1, OpenSSL 1.0.2d 9 Jul 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to myhostname.ddns.net [80.189.109.195] port 22.
debug1: connect to address xxx.yyy.zzz.123 port 22: Connection refused
ssh: connect to host myhostname.ddns.net port 22: Connection refused

有人能看出哪里出了问题吗?几个小时后我要乘飞机,我迫切需要解决这个问题,这样我就可以通过笔记本电脑远程访问我的本地机器。

答案1

需要检查以下几件事(按照最可能的 IME 顺序):

  • 端口转发。除非您的机器可以直接从互联网访问80.xxx.yyy.zzz,否则这可能是路由器的地址。您需要告诉路由器将端口 22 上的流量转发到您的计算机。这是路由器特定的。最好的单一资源是港口转运网

    我没有看到这里或上一个问题提到这一点,所以这似乎是很有可能的。

  • 防火墙可以允许来自某些位置的流量,而不允许来自其他位置的流量。我不知道您在这方面做了什么设置,但如果您使用 UFW,sudo ufw status应该可以让您看到影响该端口的任何拒绝/允许模式。

  • /etc/ssh/sshd_config可能设置为仅允许在特定网络上进行连接。这不是默认行为,因此,这可能是您无意中做的事情。

  • 如果您已经安装了fail2ban,是否有可能已经从您的外部 IP 触发了它的一个自动禁令?


在你使用接近原始设置将其推送到互联网之前,我会强烈建议你读一下我写的一篇文章确保 SSH 安全。人们经常因为不充分的安全措施而遭受黑客攻击,而 SSH 服务器则是直接实现完全控制的途径。

相关内容