wprowadź zmiany w pliku sshd_config pliku bez ponownego uruchamiania serwera

33

Zmieniłem konfigurację w pliku

/etc/ssh/sshd_config

ale zadziałało dopiero po ponownym uruchomieniu serwera. Jak wprowadzać zmiany bez ponownego uruchamiania serwera?

Maksym Jefremow
źródło
Możesz użyć sudo service ssh restartdo zrestartowania usługi, aby zastosować. Pamiętaj jednak, że jeśli masz połączenie przez SSH, sesja zostanie zakończona.
AzkerM

Odpowiedzi:

39

Po prostu uruchom ponownie usługę sshd:

sudo service sshd restart

lub:

sudo /etc/init.d/sshd restart
Pathin
źródło
6
Co się stanie, jeśli będę mieć połączenie SSH?
Anwar,
7
nic ... odbijanie sshd jest na tyle sprytne, że pozwala istniejącym połączeniom ssh na wesołe kontynuowanie bez przerwy
Scott Stensland
4
Nie polecam uruchamiania czegokolwiek bezpośrednio w /etc/init.d. Użyj polecenia „usługa”. Większość usług nie ma znaczenia, ale jest kilka takich, ponieważ wpływają na nie zmienne środowiskowe. „usługa” zapewnia oczyszczenie środowiska. Na przykład uruchomienie „sudo” pozostawia zmienną środowiskową HOME w katalogu głównym użytkownika innego niż root.
Chris Cogdon
5
sudo service ssh restart

nie zrobię tego. Musisz ponownie uruchomić sshd, a nie ssh:

sudo service sshd restart
William Dowling
źródło
3
Zależy od konfiguracji systemu. W Lubuntu 14.04 sudo service ssh restartdziała świetnie, a sudo service sshd restartraporty „sshd: nierozpoznana usługa”. Nie jestem pewien, dlaczego to się zmienia ...
Schulwitz
3

Jest jeszcze mniej inwazyjny sposób na to, bez ponownego uruchamiania usługi SSH.

Od man sshd:

sshd ponownie odczytuje swój plik konfiguracyjny, gdy otrzyma sygnał zawieszenia, SIGHUP, wykonując się z nazwą i opcjami, z którymi został uruchomiony, np. / usr / sbin / sshd.

Możesz więc użyć polecenia takiego jak poniżej, aby wysłać SIGHUP do procesu serwera SSH:

sudo kill -SIGHUP $(pgrep -f "sshd -D")

pgrep -f "sshd -D"Część powróci tylko PID procesu demona sshd który nasłuchuje nowych połączeń, ponieważ nie mogą być inne dla każdego PID aktywnej sesji, że nie trzeba sygnał.

Steven K.
źródło
2
Jest to najbezpieczniejszy ( stribika.github.io/2015/01/04/secure-secure-shell.html ) sposób ponownego załadowania konfiguracji: „Zachowaj szczególną ostrożność podczas konfigurowania SSH na zdalnym hoście. Zawsze utrzymuj aktywną sesję, nigdy uruchom ponownie sshd. Zamiast tego możesz wysłać sygnał SIGHUP, aby przeładować konfigurację bez zabijania sesji. Możesz być jeszcze bardziej ostrożny, uruchamiając nową instancję sshd na innym porcie i testując to. ”
Adriano Lucas,
Czy jest jakaś znacząca różnica sudo pkill -HUP sshd?
AdamKalisz
@Adam Chcesz tylko HUP procesu nasłuchiwania, a nie aktywnych klientów, którzy są również sshdprocesami. sudo pkill -HUP -f "sshd -D"jest kuszącą alternatywą, ale następnie pkill sygnalizuje własnego sudorodzica, ponieważ jego pełny wiersz poleceń odpowiada własnemu wzorowi wyszukiwania. Możesz wymyślić wzór, który nie pasuje do siebie ... -f "sshd -[D], ale to trochę zaciemnia rzeczy. Myślę, że metoda pgrep jest łatwiejsza dla uczniów, aby mogli owinąć głowy.
Steven K,
2

Jako kontrola roota

service --status-all | grep ssh

Nie miałem sshdusługi, ale miałem sshusługę na serwerze Ubuntu. Następnie

service ssh restart
Jarosław Nikitenko
źródło
2

Dla systemów systemowych - domyślnie Ubuntu

sudo systemctl reload sshd.service

lub

 sudo systemctl reload sshd

lub

 sudo /bin/systemctl reload sshd.service

Dla systemów Sysvinit

sudo service sshd reload

lub

sudo /etc/init.d/sshd reload
abu_bua
źródło
0

Przeładowanie może być lepszą alternatywą do ponownego uruchomienia

sudo service sshd reload

pod maską to wysyła HUPsygnał do procesu demona sshd prawie tak samo Steven K już odpowiedział . Różnica polega na tym, że ten wariant wykorzystuje killprocfunkcję zamiast killpolecenia bezpośrednio, aby wysłać sygnał w jeszcze bardziej precyzyjny sposób (w celu zmniejszenia możliwych błędów wysyłania sygnałów do niewłaściwych procesów). Konfiguracja jest ponownie czytana bez ponownego uruchamiania / zatrzymywania usługi.

Oczywiście warto dowiedzieć się, jak dokładnie nazywa się deamon SSH, tak jak mówili inni.

Alexander Ites
źródło