GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come correggere l'errore rifiutato dalla connessione SSH

Introduzione

Hai problemi ad accedere a un server remoto tramite SSH? Se SSH risponde con un messaggio "Connessione rifiutata", potrebbe essere necessario modificare la richiesta o controllare la configurazione.

In questo tutorial troverai i motivi più comuni per l'errore di connessione SSH rifiutata.

Perché la connessione viene rifiutata quando accedo a SSH?

Ci sono molte ragioni per cui potresti ricevere il messaggio "Connessione rifiutata " errore quando si tenta di accedere a SSH nel server. Per risolvere questo problema, è necessario prima identificare il motivo per cui il sistema ha rifiutato la connessione tramite SSH.

Di seguito troverai alcuni dei motivi più comuni che potrebbero causare un rifiuto della connessione SSH.

Client SSH non installato

Prima di risolvere altri problemi, il primo passaggio consiste nel verificare se SSH è installato correttamente. La macchina da cui si accede al server dovrebbe avere il client SSH configurato. Senza la corretta configurazione del client, non puoi accedere in remoto a un server.

Per verificare se hai il client SSH sul tuo sistema, digita quanto segue nella finestra del terminale:

ssh

Se il terminale fornisce un elenco di ssh opzioni di comando, il client SSH è installato sul sistema. Tuttavia, se risponde con comando non trovato , devi installare il client OpenSSH.

Soluzione:installa il client SSH

Per installare il client SSH sulla tua macchina, apri il terminale ed esegui uno dei comandi elencati di seguito.

Per i sistemi Ubuntu/Debian:

sudo apt install openssh-client

Per i sistemi CentOS/RHEL:

sudo yum install openssh-client

Demone SSH non installato sul server

Proprio come è necessaria la versione client di SSH per accedere a un server remoto, è necessaria la versione del server per ascoltare e accettare connessioni. Pertanto, un server può rifiutare una connessione in entrata se manca il server SSH o se l'installazione non è valida.

Per verificare se SSH è disponibile sul server remoto, eseguire il comando:

ssh localhost

Se l'output risponde con "Connessione rifiutata ", passa all'installazione di SSH sul server.

Soluzione:installa SSH sul server remoto

Per risolvere il problema di un server SSH mancante, fare riferimento a come installare il server OpenSSH.

Le credenziali sono errate

Errori di battitura o credenziali errate sono motivi comuni per una connessione SSH rifiutata. Assicurati di non aver digitato in modo errato il nome utente o password .

Quindi, controlla se stai utilizzando l'indirizzo IP corretto del server.

Infine, verifica di avere la porta SSH corretta aprire. Puoi controllare eseguendo:

grep Port /etc/ssh/sshd_config

L'output mostra il numero di porta, come nell'immagine sottostante.

Il servizio SSH è inattivo

Il servizio SSH deve essere abilitato e in esecuzione in background. Se il servizio è inattivo, il demone SSH non può accettare connessioni.

Per verificare lo stato del servizio, inserisci questo comando:

sudo service ssh status

L'output dovrebbe rispondere che il servizio è attivo. Se il terminale risponde che il servizio è inattivo, abilitalo per risolvere il problema.

Soluzione:abilita il servizio SSH

Se il sistema mostra che il demone SSH non è attivo, puoi avviare il servizio eseguendo:

systemctl start sshd

Per abilitare l'esecuzione del servizio all'avvio, eseguire il comando:

sudo systemctl enable sshd

Il firewall impedisce la connessione SSH

SSH può rifiutare una connessione a causa delle restrizioni del firewall. Il firewall protegge il server da connessioni potenzialmente dannose. Tuttavia, se hai SSH configurato sul sistema, devi configurare il firewall per consentire le connessioni SSH.

Assicurati che il firewall non blocchi le connessioni SSH in quanto ciò potrebbe causare la "connessione rifiutata " errore.

Soluzione:consenti connessioni SSH tramite firewall

Per risolvere il problema menzionato sopra, puoi utilizzare ufw (Uncomplicated Firewall), lo strumento di interfaccia a riga di comando per la gestione della configurazione del firewall.

Digita il seguente comando nella finestra del terminale per consentire le connessioni SSH:

sudo ufw allow ssh

La porta SSH è chiusa

Quando si tenta una connessione a un server remoto, SSH invia una richiesta a una porta specifica. Per accettare questa richiesta, un server deve avere la porta SSH aperta.

Se la porta è chiusa, il server rifiuta la connessione.

Per impostazione predefinita, SSH utilizza la porta 22. Se non hai apportato modifiche alla configurazione della porta, puoi controllare se il server è in attesa delle richieste in arrivo.

Per elencare tutte le porte in ascolto, esegui:

sudo lsof -i -n -P | grep LISTEN

Trova la porta 22 nell'output e controlla se è STATE è impostato su ASCOLTA .

In alternativa, puoi verificare se una porta specifica è aperta, in questo caso la porta 22:

sudo lsof -i:22

Soluzione:apri la porta SSH

Per abilitare la porta 22 per ASCOLTARE le richieste, usa iptables comando:

sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

Puoi anche aprire le porte tramite la GUI modificando le impostazioni del firewall.

Debug e registrazione SSH

Per analizzare i problemi SSH in Linux, puoi attivare la modalità dettagliata o debug modalità . Quando abiliti questa modalità, SSH stampa i messaggi di debug che aiutano a risolvere i problemi di connessione, configurazione e autenticazione.

Ci sono tre livelli di verbosità:

  • livello 1 (-v )
  • livello 2 (-vv )
  • livello 3 (-vvv )

Pertanto, invece di accedere a un server remoto utilizzando la sintassi ssh [server_ip] aggiungi il -v opzione ed esegui:

ssh -v [server_ip]

In alternativa, puoi utilizzare:

ssh -vv [server_ip]

o

ssh -vvv [server_ip]

Ubuntu
  1. Come aumentare il timeout della connessione SSH

  2. Come controllare la velocità della tua connessione ssh

  3. Connessione Ssh rifiutata dall'interno della LAN?

  4. Come correggere l'errore "verifica della chiave host non riuscita"

  5. Come si esce da una connessione SSH?

Come risolvere "Le informazioni di aggiornamento sono obsolete" in Ubuntu Linux

Come abilitare il server SSH su Ubuntu 22.04

Come installare il server OpenSSH su Ubuntu 20.04 LTS

Come connettersi a Internet tramite un server remoto tramite connessione Ssh?

Come correggere un errore di connessione al database

Correzione dell'errore del tubo rotto con la connessione SSH