来自 Windows 10 和 ChromeOS 的 SSH 连接被拒绝

SSH connection refused from Windows 10 and ChromeOS

我有两个 Ubuntu 16.04 的虚拟服务器,由不同的提供商托管。将我的桌面从 Win7 迁移到 Win10 后,我无法通过 SSH 连接到服务器(请参阅下面的错误消息)。我也尝试过其他操作系统:

相同的应用程序 (JuiceSSH) 可以在 Android 上连接,但 returns 'connection refused' 在 ChromeOS 上。

错误信息:

1. Gitbash (Windows 10)

$ ssh user@myhost
ssh: connect to host myhost port 22: Connection refused

2. Secure Shell (ChromeOS, with -vvv)

Connection with user@myhost is established...
Loading NaCl plug-in... Finished
OpenSSH_7.6p1, OpenSSL 1.0.2k 26 Jan 2017
debug2: resolving "myhost" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to myhost [myip] port 22.
debug1: connect to address myip port 22: Connection refused
ssh: connect to host myhost port 22: Connection refused
NaCl plug-in ended with the status code"255".

3. Bitwise SSH Client (Windows 10)

...
06:34:46.871 Connecting to SSH2 server slejska.de:22.
06:34:47.918 Connection failed. FlowSocketConnector: Failed to connect to target address. Windows error 10061: No connection could be established because the target computer refused the connection.
06:34:47.949 The SSH2 session has been terminated.

备注:

解决方案:

端口 22 用于某些在路由器上被阻止的计算机。它与操作系统无关。为所有计算机打开端口后,一切正常。感谢@Nathan-McCoy

只是为了让我的原始评论更加可见。

并非所有系统默认都允许 TCP 端口 22,这是 ssh 的默认端口。

这里有一些方法可以尝试帮助找到问题的根源。

建议

检查客户端上的开放端口

运行 nmap <server> 在想要通过 ssh 连接的客户端上。

如果端口 22 未显示为打开,这可能是防火墙问题。

检查服务器上的开放端口

运行 netstat 在服务器上查看打开了哪些端口。

如果端口 22 不是 LISTENING,则 ssh 守护程序设置不正确。