[更新 - 已解决(?):请参阅下面的答案和我的解决方案。不过,我仍然不确定为什么我的症状(似乎已经)从完全超时变为需要 3 分钟才能成功,这就是让我调试并找到解决方法的原因。]
当我尝试 ssh 到我的 mac OS 计算机时,它超时(就好像没有任何东西在侦听该端口 - telnet 到端口 22 也会超时)。我能成功 ping 机器,因此网络连接似乎合理,并且我能ssh 从目标机器到自身(localhost),所以它实际上正在侦听端口 22。事实上,我无法 telnet 到任何该机器上的端口。
[补充事实:我在端口 8080 上设置了一个网络服务器,同样我无法从其他计算机连接到它,但我可以确认它确实正在侦听该端口。所以看来这是一个网络/端口/防火墙问题,与 ssh 无关。]
系统偏好设置看起来不错(共享已为所有用户打开远程登录,防火墙选项确认“远程登录(SSH)”为“允许传入连接”(此处截图)。并且launchctl似乎显示sshd正在运行。
我可以去从该机器到我拥有的另一台 mac OS 机器 - 所以它似乎也不是路由器问题[尽管:一台机器通过以太网连接,而麻烦的机器通过无线连接]。据我所知,我的两台 mac 都以相同的方式配置。
几周前一切都运转良好;从那时起我就安装了系统更新。也许我同时改变了一些系统设置;我不记得改变过任何东西。 (唯一的区别,如前所述:一台机器通过以太网连接到我的路由器,另一台机器通过无线连接到我的路由器。)
机器(“tropic”)确实正在使用 sshd 侦听端口 22 的证据:它可以通过 localhost 查看自身:
tropic> telnet localhost 22
Trying ::1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4
并且还sudo launchctl list com.openssh.sshd
打印大约 20 行,看起来与其他人的帖子上的“正确”版本相同。
但是当尝试从另一台机器(“赤道”)连接时:
equator> ssh -vvv tropic.local
OpenSSH_7.4p1, LibreSSL 2.5.0
debug1: Reading configuration data /Users/ibarland/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: resolving "tropic.local" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to tropic.local [192.64.0.3] port 22.
ssh: connect to host tropic.local port 22: Operation timed out
网络连接正常:
equator> ping -c 2 tropic.local
PING tropic.local (192.64.0.3): 56 data bytes
64 bytes from 192.64.0.3: icmp_seq=0 ttl=55 time=17.424 ms
64 bytes from 192.64.0.3: icmp_seq=1 ttl=55 time=19.654 ms
--- tropic.local ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 17.424/18.539/19.654/1.115 ms
我尝试过/验证过的其他事情:我已经完全关闭了防火墙(在两台计算机上),我已经尝试过禁用我的路由器的防火墙——这些都没有任何区别。双方都运行相同版本的 ssh。两者均已重新启动;我已确保两者都有最新的系统更新。
整个下午我都在用头撞墙;任何见解、调试策略或其他建议将不胜感激。 (我找不到端口侦听器生成的任何系统日志消息(如果有的话)。
答案1
不确定这是(整个)问题,但我解决了与超时相关的问题:
(a) 一个解决方案——或者至少是一个解决方法——是编辑/etc/ssh/ssh_config
:
Host tropic
HostName 192.168.1.4
~/ssh/
(想必这个改变也可以在不需要 root 权限的情况下工作)
(b) 问题是一个非常长(约 3 分钟)的 ssh 超时:ssh -vvv
显示它正在尝试使用 MAC 地址连接两次;当它最终开始尝试 IP 地址时,它很快就连接了。 [虽然我两周前的问题似乎是失败几分钟后超时;不知道今天早上我重新审视这个问题时有什么不同,什么时候最终会连接,但只是在几分钟后。]
(c) 可悲的是,这复制了我也在其中指定的 IP 地址/etc/hosts
——也许向该文件添加信息引发了我的一些问题?
(d) Fwiw,我的问题不是通过更改有关orssh_config
的行,也不是通过更改的选项来解决。GSSAPIAuthentication
GSSAPIDelegageCredentials
sshd_config
UseDNS