在服务器上升级 OpenSSH 后,从 MacBook 到 Windows 10 服务器的 SSH 不再起作用吗?

在服务器上升级 OpenSSH 后,从 MacBook 到 Windows 10 服务器的 SSH 不再起作用吗?

我已经在 Windows 10 服务器上卸载了 OpenSSH 客户端和服务器,然后重新安装了它们。

现在它有了OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2,比以前的版本稍高一些(我认为它有 OpenSSH_for_Windows_8.0p1)。

但是,现在我无法在我的 MacBook 上使用 SSH 连接到该 Windows 服务器。

(base) xxx@yyy ~ % ssh uid@aaa-bbb
ssh: connect to host aaa-bbb port 22: Operation timed out

(base) xxx@yyy ~ % ping uid@aaa-bbb
ping: cannot resolve uid@aaa-bbb: Unknown host

我可以在我的 MacBook 上 SSH 到其他服务器;我也可以在这台 Windows 10 服务器上 ssh 到另一台服务器。

OpenSSH_9.0p1, LibreSSL 3.3.6这是因为我的 MacBook ( ) 和 Windows 服务器 ( OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2)之间存在 OpenSSH 版本不兼容问题吗?

更重要的是,我该如何解决这个问题?

答案1

  1. 验证 OpenSSH 服务器 (sshd) 服务是否已启动:

     Get-Service -Name ssh*
    
  2. 如果 sshd 服务尚未启动,请启动它:

     net start sshd
    

更多详情请点击这里:

问题摘要:OP 的原始问题指出他们无法 ping Windows 10 SSH 服务器,但他们在末尾尝试使用 @username 符号,因此 ping 失败。他们 ping 后,只有主机名/计算机名称 ping 工作正常。然后他们收到“连接被拒绝”的消息(不确定是在防火墙禁用之后还是之前,因此他们可能仍需要进行防火墙例外1),这意味着 SSH 服务器正在响应,但拒绝。结果发现 SSH 服务器守护进程(在这种情况下是 Windows 服务)未启动,最终解决了该问题。

答案2

  1. 打开 Windows 任务管理器并验证 sshd.exe 进程是否正在运行。如果没有,则其配置文件可能有问题。检查错误日志。

  2. 打开 cmd 并输入netstat -ano | find "22"。检查服务器确实在监听端口 22。检查 PID(最右边的列)并使用任务管理器验证它确实是 sshd.exe 进程。

  3. 通过 IP 地址而不是主机名连接到服务器以排除可能的 DNS 问题。

  4. 暂时禁用 Windows 防火墙。如果您能够连接,则需要编辑或添加允许 SSH 连接的规则,因为永久关闭防火墙会带来安全风险。

  5. 如果其他方法都不起作用,请尝试使用 Putty 进行连接(可以从 brew 或 MacPorts 获得 Mac 版本)以检查是否确实存在兼容性问题 - 但我对此表示严重怀疑。

答案3

如果您无法 ping 通,我会先检查您的 dns(假设您已尝试按照 harrymc 的建议正确 ping 通)。

您是否知道所连接的服务器的 IP 地址,如果您可以直接 ping IP 但不能 ping 名称,则检查内容/etc/resolv.conf(我相信这对于 Mac 来说是正确的,如果不正确,我相信有人会纠正)

您也可以尝试安装 bind 然后brew install bind运行

使用默认名称服务器 dig aaa-bbb

如果服务器使用公共域,则:

dig aaa-bbb @8.8.8.8

或者

dig aaa-bbb @4.2.2.4

8.8.8.8和4.2.2.4是公共DNS服务器。

如果它不是公共域,请将其替换@8.8.8.8为您的内部 DNS 服务器之一。

作为最后的手段,如果您可以 ping IP,但不能 ping 名称,请/etc/hosts使用名称和 IP 进行编辑。

echo <ip address of server> aaa-bbb >> /etc/hosts

相关内容