accetta le modifiche nel file sshd_config senza riavviare il server


33

Ho cambiato la configurazione nel file

/etc/ssh/sshd_config

ma ha effetto solo dopo il riavvio del server. Come eseguire le modifiche senza riavviare il server?


È possibile utilizzare sudo service ssh restartper riavviare il servizio per rendere effettive. Ma ricorda che se sei connesso tramite SSH, la sessione verrà chiusa.
AzkerM,

Risposte:


39

Basta riavviare il servizio sshd:

sudo service sshd restart

o:

sudo /etc/init.d/sshd restart

6
E se avessi una connessione ssh?
Anwar,

7
niente ... rimbalzare sshd è abbastanza intelligente da consentire alle connessioni ssh esistenti di continuare allegramente senza sosta
Scott Stensland

4
Non consiglio di eseguire direttamente qualcosa in /etc/init.d. Usa il comando "service". Alla maggior parte dei servizi non importa, ma ce ne sono alcuni perché sono influenzati dalle variabili di ambiente. il "servizio" assicura che l'ambiente venga ripulito. Ad esempio, l'esecuzione di "sudo" lascia la variabile di ambiente HOME nella directory home non root.
Chris Cogdon,

5
sudo service ssh restart

non lo farà. È necessario riavviare sshd, non ssh:

sudo service sshd restart

3
Dipende dalla configurazione del sistema. In Lubuntu 14.04 sudo service ssh restartfunziona benissimo, mentre sudo service sshd restartriporta "sshd: servizio non riconosciuto". Non sono sicuro del perché ciò vari ...
Schulwitz,

3

C'è un modo ancora meno invadente per farlo, senza riavviare il servizio SSH.

Da man sshd:

sshd rilegge il suo file di configurazione quando riceve un segnale di blocco, SIGHUP, eseguendosi con il nome e le opzioni con cui è stato avviato, ad es. / usr / sbin / sshd.

Quindi puoi usare un comando come il seguente per inviare SIGHUP al processo del server SSH:

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

La pgrep -f "sshd -D"parte restituirà solo il PID del processo demone sshd in ascolto di nuove connessioni, poiché è probabile che ci siano altri PID per ogni sessione attiva che non necessita del segnale.


2
Questo è il modo più sicuro ( stribika.github.io/2015/01/04/secure-secure-shell.html ) per ricaricare la configurazione: "Prestare estrema attenzione quando si configura SSH su un host remoto. Mantenere sempre una sessione attiva, mai riavvia sshd. Invece puoi inviare il segnale SIGHUP per ricaricare la configurazione senza uccidere la sessione. Puoi fare ancora più attenzione avviando una nuova istanza sshd su una porta diversa e testandola. "
Adriano Lucas,

C'è qualche differenza significativa in sudo pkill -HUP sshd?
AdamKalisz,

@Adam Vuoi solo HUP il processo di ascolto, non i client attivi che sono anche sshdprocessi. sudo pkill -HUP -f "sshd -D"è un'alternativa allettante, ma poi pkill segnala il proprio sudogenitore poiché la sua riga di comando completa corrisponde al proprio modello di ricerca. Puoi inventare uno schema che non corrisponda a se stesso ... -f "sshd -[D], ma che offusca un po 'le cose. Penso che il metodo pgrep sia più facile per gli studenti per avvolgere la testa.
Steven K

2

Come controllo root

service --status-all | grep ssh

Non avevo alcun sshdservizio, ma avevo un sshservizio sul server Ubuntu. Poi

service ssh restart

2

Per sistemi Systemd: impostazione predefinita di Ubuntu

sudo systemctl reload sshd.service

o

 sudo systemctl reload sshd

o

 sudo /bin/systemctl reload sshd.service

Per i sistemi Sysvinit

sudo service sshd reload

o

sudo /etc/init.d/sshd reload

0

Ricarica può essere una migliore alternativa al riavvio

sudo service sshd reload

sotto il cofano invia il HUPsegnale al processo demone sshd quasi nello stesso modo in cui Steven K ha già risposto . La differenza è che questa variante utilizza la killprocfunzione anziché il killcomando direttamente per inviare il segnale in modo ancora più preciso (per ridurre possibili errori di invio di segnali a processi errati). La configurazione viene riletta senza riavviare / arrestare il servizio.

Ovviamente vale la pena scoprire come si chiama esattamente il demone SSH mentre altri ne discutono.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.