Linia poleceń SSH uruchom ponownie Mac OSX Mountain Lion

62

Jak mogę ponownie uruchomić usługę SSH za pomocą wiersza polecenia w systemie Mac OSX Mountain Lion?

Używając ps aux | grep 'ssh', byłem w stanie wywnioskować, że proces jest najbardziej prawdopodobny /usr/sbin/sshd.

Stamtąd przeszukałem dokumentację sshd w poszukiwaniu odniesień do „restartu”, ale nie znalazłem żadnej.

Nie wiem, jaki powinien być mój następny krok.

James Webster
źródło
4
Co tak naprawdę próbujesz osiągnąć? Jeśli jest to coś takiego jak ponowne ładowanie konfiguracji sshd, nie musisz - uruchomiona uruchamia nowy proces sshd na żądanie po otrzymaniu połączenia przychodzącego, co oznacza, że ​​konfiguracja jest automatycznie ponownie czytana dla każdego nowego połączenia. OTOH, jeśli próbujesz zmienić ustawienia detektora, są one kontrolowane przez uruchomienie, a nie przez konfigurację sshd (patrz tutaj ).
Gordon Davisson
1
To był tylko jeden test debugowania żądania hasła z podobno bezhasłowego ssh przy użyciu kluczy publicznych. Okazuje się, że tęskniłem za wyłączeniem StrictMode
James Webster,

Odpowiedzi:

42

Zobacz tę odpowiedź na podobne pytanie dotyczące ServerFault. Polecenie powinno być takie samo w Mountain Lion.

Możesz zatrzymać usługę za pomocą komendy „unload”.

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

Zmiana zaproponowana przez @MattClark: Aby uruchomić ponownie korzystać z usługi loadpo unload:

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

Pamiętaj, że istniejące sesje SSH zostaną zakończone, więc musisz je uruchomić niezależnie od bieżącej sesji użytkownika.

Ansgar Wiechers
źródło
Ten mnie launchctl: Error unloading: com.openssh.sshd
łapie
1
@MattClark Następnie radzę trzymać się z daleka od maszyn produkcyjnych, dopóki nie poprawisz swojego rozumienia czytania. Z mojej odpowiedzi: „Możesz zatrzymać usługę ...” (moje podkreślenie).
Ansgar Wiechers,
3
Masz rację, źle to odczytałem, to była moja wina. Jednak to również nie odpowiedziało na zadane pytanie.
Matt Clark
Możesz uruchomić to za jednym razem, używając Cx Ce (C oznacza Control). Wklej go do terminala, a następnie Cx Cc, aby wykonać polecenie zabicia emacsa, które wyświetli monit o zapisanie. Zrobiłem to zdalnie i nie zlikwidowałem mojego połączenia ... zważywszy, że twoja konfiguracja jest poprawna.
Ray Foss
92

Nie ma powodu, aby „zwalniać” usługę sshd, gdy zamiast tego można po prostu „zatrzymać” usługę sshd. Zrestartuje się sam.

sudo launchctl stop com.openssh.sshd
Glenschler
źródło
2
na moutain lion:launchctl stop error: No such process
RickyA
1
@ RickyA: Działa dobrze w OSX Mavericks
neu242
Nie działa tutaj ( launchctl stop error: No such process)
Nicolas Miari
1
Musisz, sudoponieważ w ten sposób jest uruchamiany. Porównaj uruchomione demony / agentów launchctl list | grep -i opensshvs sudo launchctl list | grep -i openssh. W celach informacyjnych przeczytaj link
launchctl
To już nie działa w OS X Yosemite, próba zatrzymania sshd (jako root) powoduje status wyjścia 3, a usługa nadal działa.
RCross,
4

Nie mogłem potwierdzić, że odpowiedź Ansgara zadziałała, ponieważ nie było żadnych wiadomości / oczywistych znaków, choć jestem pewien, że tak się stało.

Dowiedziałem się również, killall sshdktóre zabija i restartuje procesy sshd z wadą, że wszelkie połączenia są zatrzymywane.

James Webster
źródło