我做了“某事”后,我的 ssh 功能停止工作

My ssh function stopped working after I did “something”

我的最终目标是从另一台计算机 运行 一台 (Mac) 计算机上的应用程序及其 GUI。第一步是仅使用 SSH 访问和控制使用另一台计算机和终端的计算机。这工作正常。

下一步是在服务器和终端上安装 XQuartz,以便能够在另一台计算机上查看和使用 GUI。常规 SSH 控件有效,但 GUI 无效。显然 DISPLAY 变量设置不正确,这可能是由于 XLForwarding = no 在 sshd.config 文件中设置为 no。我将其更改为是,常规 SSH 仍然有效,但 DISPLAY 仍然错误并且未出现 GUI。所以,我读到我必须重新启动 SSH 服务,我找到了一个方法来做到这一点:

sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist

这把事情搞砸了,因为现在我什至无法进行常规 ssh 控制。我尝试了 unloadload,这在终端中给出了不同的错误消息:

当我运行(在另一台电脑上):

 sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

我立即得到:

ssh_exchange_identification: Connection closed by remote host

然后我尝试修复损坏:

sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist

然后我在一段时间后(大约 3 秒)得到:

ssh: connect to host macpro-****.imt.liu.se port 22: Connection refused

我做了什么,我该如何解决? :'(

此处似乎缺少信息,但如果您只是对重新启动 sshd 进程感兴趣,那么使用以下命令比卸载服务更合适:

sudo launchctl stop com.openssh.sshd

它应该会自动重启。

您对 launchctl unload 的使用实际上会阻止 sshd 进程启动,这不是您想要的。


要开始进行故障排除,请验证 sshd 是否确实在您的计算机以及目标计算机上侦听:

MacBook-Pro: user$ netstat -a | grep ssh
tcp6       0      0  *.ssh                  *.*                    LISTEN     
tcp4       0      0  *.ssh                  *.*                    LISTEN

请注意,如果您愿意,也可以在 GUI 中进行更改:

原来我们已经将 sshd_config 文件的扩展名更改为 .txt(不要问我为什么),这似乎不是问题,直到我们使用 [= 重新启动 ssh 服务14=]。这让我把责任归咎于卸载功能。

因此,通过将 sshd_config.txt 重命名为 sshd_config 并重新启动服务解决了问题。