Uruchom ponownie SSH na komputerze, na którym SSH jest jedynym trybem dostępu

29

Wprowadziłem kilka zmian w pliku sshd_config i dlatego muszę zrestartować. Szukam wskazówek na temat bezpiecznego restartowania ssh, gdy uzyskanie fizycznego dostępu do serwera byłoby huga PITA.

Mitch
źródło

Odpowiedzi:

42

Ponowne uruchomienie sshd po zalogowaniu przez ssh nie rozłączy połączenia ssh.

Jeśli martwisz się konfiguracją, zaloguj się kilka razy przez ssh i uruchom ponownie. Jeśli nie możesz już ssh, dzięki nowym połączeniom masz teraz dostęp do rozwiązania problemów.

Wspomniany poniżej w komentarzu @Milan Babuškov: sshd -tprzetestuje twoją konfigurację pod kątem poprawności składni, jeśli naprawdę chcesz być pewien.

Inną sugestią @Ronald Pottol było skonfigurowanie cronzadania ponownego uruchomienia serwera przy znanej działającej konfiguracji. Być może przesada, ale jeśli aktualizujesz serwer o znaczeniu krytycznym itp., Czasami nigdy nie możesz być zbyt ostrożny.

cpbills
źródło
To całkiem proste, ma również sens. Dzięki za naprawdę szybką odpowiedź. FYI zmiany, które wprowadziłem, sprawdziły się świetnie;)
Mitch
6

Jeśli masz dostęp do sprzętu, możesz rozważyć umieszczenie terminala na porcie szeregowym / dev / ttyS0. Następnie możesz mieć tylne drzwi do swojego serwera.

po prostu dodaj

SO:2345:respawn:/sbin/mingetty ttySO

do twojego / etc / inittab, a terminal pojawi się na twoim porcie szeregowym. Możesz użyć koncentratora portów szeregowych lub modemu zerowego z serwera obok niego.

keithosu
źródło
Fajne! Czy to dość standardowa praktyka?
Mitch
3
Całkiem standardowy, o ile masz sposób na połączenie się z maszyną, którą jest szeregowy serwer terminali.
Kamil Kisiel
2
Może tak być, ale ze względu na wirtualizację nie jest to konieczne, ponieważ można zarządzać za pomocą funkcji Hypervisor. Kolejną fajną rzeczą jest to, że jeśli BIOS obsługuje to „Przekierowanie konsoli”, to pokaże wszystkie ekrany BIOS za pośrednictwem konsoli szeregowej. GRUB ma również możliwość wyświetlania na konsoli szeregowej. Nie ma więc potrzeby, aby zdalne wideo sprawdzało, czy serwer wróci do trybu online.
keithosu
4

Nie martw się, bieżąca sesja nie zostanie rozłączona, nawet jeśli wystąpi problem z nową konfiguracją.

Po zastosowaniu nowej konfiguracji i ponownym uruchomieniu sshd, spróbuj zalogować się kilka razy i spójrz na logi, aby sprawdzić, czy wszystko jest w porządku.

Marco Ramos
źródło
3

Lub użyj crona lub w pracy, aby uruchomić go ponownie, jeśli masz pecha?

Ronald Pottol
źródło
cronlub atdziałałoby, aby skopiować „znany” działający program, tj. starą konfigurację, z powrotem, a następnie ponownie uruchomić usługę ...
cpbills
1

Czy nie możesz po prostu uruchomić kill -HUP w PID usługi SSH? Nie jest czysty, ale działa


źródło
2
Często SIGHUP jest to czysty sposób na ponowne załadowanie konfiguracji demona.
grawitacja
W tym przypadku jest czysty. Z wiarygodnego źródła: sshd ponownie czyta plik konfiguracyjny, gdy odbiera sygnał
zawieszenia
1
pkill -HUP sshdzamknąłem moje połączenie. To zadziałało:kill -HUP $(pgrep -f /usr/bin/sshd)
Tom Hale,
0

Przekonałem się, że obecnie sshdnie rozłącza twoich sesji podczas restartu, szczególnie gdy jest to dystrybucja oparta na Redhat. Zawsze możesz napisać mały skrypt, który automatycznie przywróci sshdkonfigurację z kopii zapasowej i uruchomi się ponownie sshdpo 5 minutach jako zadanie cronlub atzadanie. Zapewni to, że nawet jeśli zostaniesz rozłączony, będziesz mógł przynajmniej wrócić do swojego serwera.

Riaan
źródło
-1

Nie polecam restartowania / przeładowywania dysku SSHD na połączeniu sshd. Widziałem wiele razy, w których sshd po prostu nie uruchamiał się ponownie z powodu błędu składniowego w sshd_config.

Mimo że wszystko jest w porządku z plikiem konfiguracyjnym, jest to ryzykowne.

Murat Arslan
źródło
9
Możesz użyć sshd -t, aby wcześniej przetestować plik konfiguracyjny.
Milan Babuškov,
Dzięki Milanowi, szybko przeszukałem człowieka pod kątem takiej opcji, w Apache's -s, więc musiałem być zbyt skoncentrowany na -s.
Mitch
pochłonę twój komentarz do mojej odpowiedzi, także gdy sshd zakończy działanie, nie obniża to liczby otwartych sesji ssh, ale dobrze jest wiedzieć, że twoja składnia jest poprawna, jeśli się pocisz.
cpbills