GNU/Linux >> Linux Esercitazione >  >> Linux

Risolvi i problemi di SSH

Questo articolo mostra come risolvere i problemi di Secure Shell (SSH) su un server Linux®.

Diversi tipi di errori

Se non puoi accedere tramite SSH a un server, dovresti prestare attenzione agli errori (o alla loro mancanza) che ricevi. L'elenco seguente descrive alcuni possibili errori.

Accesso negato o autenticazione rifiutata

Questo tipo di errore si verifica ogni volta che accedi tramite SSH con credenziali errate. Se ricevi questo errore, puoi controllare quanto segue:

  • Assicurati di aver digitato correttamente nome utente e password.
  • Se stai utilizzando una coppia di chiavi SSH, assicurati di avere la chiave privata installata sul tuo computer locale.

Porta 22:connessione rifiutata

Questo errore si verifica per i seguenti motivi:

  • SSH non è installato o in esecuzione.
  • SSH è in ascolto su una porta diversa.
  • Le regole del firewall non consentono SSH.

Errore di rete:connessione scaduta

Questo errore si verifica spesso a causa di problemi di connettività di rete sul server o sul computer locale. Ogni volta che ricevi questi errori, assicurati che il tuo computer locale sia connesso a Internet. Se è connesso, controlla anche la connessione del server per assicurarti che il server sia in esecuzione.

Controlla dall'esterno

Di seguito sono riportati alcuni modi comuni per risolvere i problemi di SSH dall'esterno del server:

nmap

nmap è uno strumento di esplorazione della rete e uno scanner di sicurezza o porta. È possibile utilizzare questo strumento per verificare se la porta per SSH è aperta sul server. L'esempio seguente fornisce il comando e il relativo output:

$ nmap <ip-address-of-host>

Starting Nmap 6.40 ( https://nmap.org ) at 2020-03-21 23:44 UTC
Nmap scan report for <ip-address-of-host>
Host is up (0.033s latency).
Not shown: 997 filtered ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 4.35 seconds

ssh -vvv

Usando ssh con il -vvv flags produce un output dettagliato quando si accede al server tramite SSH. Questo comando può fornire alcune informazioni utili per la risoluzione dei problemi esattamente dove potrebbe essere il problema.

Controlla dall'interno

Se riscontri problemi con SSH, puoi accedere utilizzando la console di emergenza per risolvere i problemi del server e verificare le seguenti condizioni:

Processo SSH

Innanzitutto, assicurati che il processo SSH sia in esecuzione eseguendo il comando seguente:

  • Per Ubuntu® 16.04+, Debian® 8+ e Centos® 7+:systemctl status sshd
  • Per Centos 6:service sshd status

Se non vedi il servizio in esecuzione, puoi avviare il processo utilizzando il comando seguente:

  • Per Ubuntu 16.04+, Debian 8+ e Centos 7+:systemctl start sshd
  • Per Centos 6:service sshd start

netstat

Il netstat comando mostra le connessioni correnti sul server. Questo comando è un buon modo per controllare e vedere su quale porta è in esecuzione SSH. Quando esegui netstat , usa i flag -plnt per ottenere il seguente output:

# netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp6       0      0 :::22                   :::*                    LISTEN      13631/sshd             

File di configurazione SSH

Il file di configurazione SSH, /etc/ssh/sshd_config , imposta la configurazione SSH. Ci sono molte opzioni nel file di configurazione, ma eccone alcune a cui prestare attenzione:

Port 22            <---- The port ssh runs on
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

~
~
~

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes  <---- Allows or block users logging in as root
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes  <---- Will state whether or not a user needs an ssh key to log in

In alternativa, puoi usare il grep comando per cercare queste righe specifiche. Quando usi grep comando, devi essere specifico quando cerchi una frase specifica. Fai attenzione alla punteggiatura, alle maiuscole e all'ortografia.

$ sudo grep Port /etc/ssh/sshd_config
#   Port 22

Il firewall

Se disponi di connettività di rete, tutte le configurazioni sono corrette e non riesci ancora a connetterti tramite SSH, potresti voler esaminare le regole del firewall sul server. Sui server Linux, iptables ha queste regole. Per elencare le regole del firewall in iptables , esegui il comando iptables -L . Per ulteriori informazioni su iptables , leggi Introduzione a iptables.

fail2ban

fail2ban è un'applicazione che blocca un indirizzo IP dopo un certo numero di tentativi di accesso non riusciti. Per controllare le jail, puoi eseguire il comando fail2ban-client status . Questo comando mostra tutte le jail configurate sul server e gli indirizzi IP che si trovano in quelle jail.

I file di registro

Quando tutto il resto fallisce, vai ai file di registro. Questi file forniscono informazioni sul fatto che stai raggiungendo o meno il server, se stai utilizzando una password non valida e così via. I file di registro che dovresti esaminare includono i seguenti file:

  • Ubuntu o Debian:/var/log/auth.log
  • CentOS o RHEL®:/var/log/secure

Durante la ricerca in questi file di registro, puoi utilizzare less comando per analizzare l'intero file e cercare un'ora o una stringa specifica. Se hai effettuato l'accesso al server dalla console, puoi utilizzare tail -f sui log mentre provi a eseguire l'accesso SSH al server. Quindi, puoi guardare l'aggiornamento dei file di registro in tempo reale.


Linux
  1. Come SSH su Linux da Android

  2. Ssh:sposta un'applicazione in esecuzione su un server X diverso??

  3. Ssh, Sudo, quindi Scarica?

  4. Come eseguire Ssh su un server utilizzando un altro server??

  5. Risolvere i problemi di accesso remoto a SQL Server

Come utilizzare SSH per connettersi a un server remoto

Tunneling e proxy SSH

Server SSH

Come aggiungere la chiave pubblica SSH al server

12 cose da fare dopo aver installato un server Linux

Come eseguire l'SSH sul server tramite Linux