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.


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.


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

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.