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.

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.


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.


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.


3

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


cronlub atdziałałoby, aby skopiować „znany” działający program, tj. starą konfigurację, z powrotem, a następnie ponownie uruchomić usługę ...
cpbills


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.


-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.


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
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.