GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Ssh ripristina la porta predefinita al riavvio?

Ho cambiato la mia porta SSH predefinita sul mio server di casa (in /etc/ssh/sshd_config file) sulla porta 54747, quindi riavviato ssh e sshd servizi (mai sicuro di quale quindi ho fatto entrambi solo per sicurezza). Per testare la mia configurazione, mi sono disconnesso e poi sono rientrato senza alcun problema.

Un paio di giorni dopo, ho installato gli aggiornamenti apt e quindi ho riavviato il mio server. Quando ho provato a rientrare in SSH (sulla porta 54747), ho ricevuto un errore di connessione rifiutata.

Per qualche motivo, ho provato a utilizzare SSH sulla porta predefinita e ha funzionato! Sono tornato a controllare sshd_config, ma aveva ancora la porta personalizzata. Quindi ho riavviato ssh e sshd services, ed è tornato al comportamento "normale" (ssh sulla porta 54747). Ho provato a riavviare di nuovo e la connessione si è rifiutata di nuovo...

Qualcuno sa cosa ho sbagliato?

Dettagli extra :

  • Ubuntu 16.04.2 LTS
  • Il server viene utilizzato anche un HTPC, con una sessione aperta (stesso utente di SSH) sulla mia TV
  • I SSH utilizzando la chiave RSA del mio laptop e ho disabilitato l'autenticazione della password
  • Avevo il riavvio con sudo reboot -h now , ma dopo aver cercato, ho scoperto che era sconsigliato da alcune persone, quindi ho provato sudo reboot , ma nessuna differenza

MODIFICA
Sequenza degli eventi :

  1. Cambia la porta SSH da 22 a 54747 in /etc/ssh/sshd_config
  2. Riavvia i servizi ssh e sshd
  3. Termina la sessione SSH corrente
  4. SSH è tornato con successo sulla porta 54747
  5. Riavvia
  6. Errore di connessione SSH sulla porta 54747, ma riuscita sulla porta 22
  7. Riavvia i servizi ssh e sshd
  8. Ritorno SSH sulla porta 54747, errore di connessione sulla porta 22
  9. Riavvia e torna a 6

MODIFICA 1 : netstat uscita

[email protected]:~$ sudo netstat -lntp | grep :54747
[email protected]:~$ sudo netstat -lntp | grep :22
tcp6       0      0 :::22                   :::*                    LISTEN      1/init  

EDIT 2 : service sshd status

● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: inactive (dead)

EDIT 3 : lsof -i | grep ssh

systemd      1     root   46u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
systemd      1     root   49u  IPv6  14641      0t0  TCP *:ssh (LISTEN)
sshd      4088     root    3u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
sshd      4088     root    4u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
sshd      4202      rgo    3u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
sshd      4202      rgo    4u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)

Per riferimento, ATLAS è il nome host del server remoto, 192.168.1.27 è l'IP LAN del mio laptop e il comando è stato eseguito tra i passaggi 6 e 7

ufw status

Status: inactive

EDIT 4 : ps -ef |grep sshd

root      4088     1  0 22:40 ?        00:00:00 sshd: rgo [priv]
rgo       4202  4088  0 22:40 ?        00:00:00 sshd: [email protected]/1 sshd

Risposta accettata:

ssh può essere "attivato dal socket" da systemd a seconda della configurazione, il che significa che inizialmente è systemd a configurare la porta di ascolto e sshd viene avviato solo quando un client si connette per la prima volta. Questo per velocizzare i tempi di avvio:i demoni di servizio vengono avviati solo su richiesta.

Correlati:come registrare lo schermo in Ubuntu?

Tuttavia questo significa che devi anche configurare systemd sulla porta corrispondente. Troverai la configurazione del sistema in /lib/systemd/system/ssh.socket che elenca ListenStream=22 . Per ignorarlo, crea un file /etc/systemd/system/ssh.socket.d/port.conf (creando la directory ssh.socket.d se necessario) che contiene:

[Socket]
ListenStream=
ListenStream=54747

Modificare il numero nella porta desiderata. La prima voce vuota cancella l'impostazione predefinita precedente e la voce successiva aggiunge quella nuova. Questo sostituisce l'impostazione predefinita fornita in /lib/systemd/system/ssh.socket e deve essere fatto in aggiunta a modificando /etc/ssh/sshd_config .

Quindi esegui sudo systemctl daemon-reload per informare systemd delle tue modifiche e sudo systemctl reload ssh se il tuo demone ssh era già in esecuzione.


Ubuntu
  1. Collegamento di un tunnel Ssh al riavvio?

  2. Cambia la porta SSH in CWP

  3. Modificare il numero di porta del server SSH predefinito

  4. Devo cambiare la porta SSH predefinita sui server Linux?

  5. Tunnel SSH HTTPS

Come abilitare SSH su CentOS

Come installare il server SSH in Ubuntu 20.04

Come modificare la porta SSH in Ubuntu

Come modificare la porta SSH predefinita in Linux [correttamente e in modo sicuro]

Come modificare la porta SSH su Centos 7.x?

Come cambiare la porta SSH su Ubuntu?