命令行SSH重新启动Mac OSX Mountain Lion


62

请问如何在Mac OSX Mountain Lion上通过命令行重新启动SSH服务?

通过使用ps aux | grep 'ssh',我可以推断出该过程最有可能/usr/sbin/sshd

从这里,我在sshd文档中搜索了“重新启动”的引用,但没有找到。

我不知道下一步该怎么做。


4
您实际上想完成什么?如果这就像重新加载sshd配置一样,则无需-接收到传入的连接后,launchd将按需启动新的sshd进程,这意味着将为每个新连接自动重新读取配置。OTOH,如果您尝试更改侦听器设置,则这些设置完全由启动而不是 sshd配置控制(请参阅此处)。
戈登·戴维森

1
这只是使用公钥调试所谓的无密码ssh的密码请求的测试。原来我想念的是关闭StrictMode
James Webster

Answers:


42

请参阅ServerFault上类似问题的此答案。该命令在Mountain Lion中应该相同。

您可以使用“卸载”子命令停止该服务。

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

更新由@MattClark建议:要重新启动该服务使用loadunload

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

请注意,现有SSH会话将终止,因此您需要独立于当前用户会话运行此会话。


这让我launchctl: Error unloading: com.openssh.sshd
Nicolas Miari 2014年

1
@MattClark然后,我建议您远离生产机器,直到您提高阅读理解能力。根据我的回答:“您可以停止服务...”(强调我的意思)。
Ansgar Wiechers

3
你是对的,我确实读错了,那是我的错。但是,这也没有回答所要求的问题。
马特·克拉克

您可以使用Cx Ce(C代表Control)一口气运行它。将其粘贴到终端,然后Cx Cc执行emacs kill命令,这将提示您进行保存。我远程执行此操作,但它并没有终止我的连接...鉴于您的配置正确。
Ray Foss

92

没有理由“卸载” sshd服务,而相反,您可以“停止” sshd服务。它将自行重启。

sudo launchctl stop com.openssh.sshd

2
在山狮上:launchctl stop error: No such process
RickyA

1
@RickyA:在OSX Mavericks上运行良好
neu242

在这里无效(launchctl stop error: No such process
Nicolas Miari 2014年

1
您需要这样做,sudo因为这是它的启动方式。比较正在运行的守护程序/代理launchctl list | grep -i opensshsudo launchctl list | grep -i openssh。作为参考,请阅读launchctl 链接
glenschler 2014年

这在OS X Yosemite中不再起作用,尝试停止sshd(作为root用户)将导致退出状态为3,并且该服务将继续运行。
RCross

4

我无法确认Ansgar的回答是否有效,因为我有信心,但没有消息/明显迹象。

我还发现killall sshd它可以杀死并重新启动sshd进程,其缺点是任何连接都会停止。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.