Befehlszeilen-SSH Starten Sie Mac OSX Mountain Lion neu

62

Wie kann ich den SSH-Dienst unter Mac OS X Mountain Lion über die Befehlszeile neu starten?

Anhand von ps aux | grep 'ssh'konnte ich ableiten, dass der Prozess am wahrscheinlichsten ist /usr/sbin/sshd.

Von hier aus suchte ich in der sshd-Dokumentation nach Verweisen auf " restart ", fand aber keine.

Ich weiß nicht, was mein nächster Schritt sein soll.

James Webster
quelle
4
Was versuchst du eigentlich zu erreichen? Wenn Sie die sshd-Konfiguration neu laden möchten, müssen Sie dies nicht tun - launchd startet einen neuen sshd-Prozess bei Bedarf, wenn eine eingehende Verbindung eingeht. Dies bedeutet, dass die Konfiguration automatisch für jede neue Verbindung neu gelesen wird. OTOH, wenn Sie versuchen, die Listener-Einstellungen zu ändern, werden diese von launchd gesteuert, nicht von der sshd-Konfiguration (siehe hier ).
Gordon Davisson
1
Dies war nur ein Test zum Debuggen einer Passwortanforderung von angeblich passwortlosem ssh mit öffentlichen Schlüsseln. Es stellte sich heraus, dass ich StrictMode
James Webster

Antworten:

42

Lesen Sie diese Antwort auf eine ähnliche Frage in ServerFault. Der Befehl sollte in Mountain Lion derselbe sein.

Sie können den Dienst mit dem Unterbefehl 'unload' beenden.

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

Update vorgeschlagen von @MattClark: Um den Dienst neu zu starten, verwenden Sie loadnach unload:

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

Beachten Sie, dass vorhandene SSH-Sitzungen beendet werden, sodass Sie diese unabhängig von der aktuellen Benutzersitzung ausführen müssen.

Ansgar Wiechers
quelle
Dieser holt michlaunchctl: Error unloading: com.openssh.sshd
Nicolas Miari
1
@MattClark Dann schlage ich vor, dass Sie sich von Produktionsmaschinen fernhalten, bis Sie Ihr Leseverständnis verbessern. Aus meiner Antwort: "Sie können den Dienst beenden ..." (Hervorhebung von mir).
Ansgar Wiechers
3
Sie haben Recht, ich habe das falsch verstanden, das war meine Schuld. Dies beantwortete jedoch auch nicht die gestellte Frage.
Matt Clark
Sie können dies auf einmal mit Cx Ce ausführen (C steht für Control). Fügen Sie es in das Terminal ein und drücken Sie dann Cx Cc, um den Befehl emacs kill auszuführen, der Sie zum Speichern auffordert. Ich habe das aus der Ferne gemacht und meine Verbindung nicht unterbrochen ... vorausgesetzt, Ihre Konfiguration ist korrekt.
Ray Foss
92

Es gibt keinen Grund, den sshd-Dienst zu "entladen". Stattdessen können Sie den sshd-Dienst einfach "anhalten". Es wird von alleine neu gestartet.

sudo launchctl stop com.openssh.sshd
Glenschler
quelle
2
am launchctl stop error: No such process
Berglöwen
1
@ RickyA: Funktionierte gut auf OSX Mavericks
neu242
Funktioniert hier nicht ( launchctl stop error: No such process)
Nicolas Miari
1
Das müssen Sie, sudoda es so gestartet wird. Vergleichen Sie die laufenden Daemons / Agenten launchctl list | grep -i opensshvs sudo launchctl list | grep -i openssh. Als Referenz lest den launchctl link
glenschler 25.04.14
Dies funktioniert in OS X Yosemite nicht mehr. Wenn Sie versuchen, sshd (als Root) zu beenden, wird der Exit-Status auf 3 gesetzt und der Dienst wird weiterhin ausgeführt.
Cross
4

Ich konnte nicht bestätigen, dass Ansgars Antwort funktioniert hat, da es keine Nachrichten / offensichtlichen Anzeichen gab, obwohl ich zuversichtlich bin, dass dies der Fall ist.

Ich habe auch festgestellt, killall sshddass sshd-Prozesse beendet und neu gestartet werden, mit dem Nachteil, dass alle Verbindungen gestoppt werden.

James Webster
quelle