Qualsiasi utente Linux attento alla sicurezza utilizzerà sempre il protocollo SSH durante la connessione ai server. Questo perché SSH è un protocollo sicuro che crittografa i dati o le informazioni inviate sulla rete. SSH ha sostituito i protocolli più vecchi e insicuri negli anni '90 come telnet e rlogin. In questa guida, esaminiamo l'utilizzo dei comandi SSH con esempi.
Per impostazione predefinita, SSH viene eseguito sulla porta TCP/IP 22
Verifica se il servizio SSH è in esecuzione su un sistema Linux
Se sei attualmente connesso a un sistema Linux e vuoi controllare se SSH è in esecuzione, esegui il comando
# systemctl status sshd
Risultato campione
Inoltre, puoi controllare che ssh sia in ascolto sulla porta 22 del tuo server usando netstat
comando come mostrato
# netstat -pnltu
Risultato campione
Le due tecniche hanno confermato che il protocollo SSH è in esecuzione sulla porta 22.
Accesso a un sistema remoto tramite SSH
Per accedere a un sistema remoto come utente root da una macchina Linux, utilizzare la sintassi seguente:
# ssh root@host-ip-address
Ad esempio, accederò a un PC Debian remoto IP 173.82.208.144
# ssh [email protected]
Se ti connetti per la prima volta, vedrai il seguente messaggio
Digita yes
per aggiungere il server all'elenco di known_hosts
situato in ~/.ssh/known_hosts
Ogni server è costituito da una chiave host che è una chiave crittografica. Questa chiave viene utilizzata per autenticare i sistemi utilizzando il protocollo SSH.
Successivamente, ti verrà richiesta la password del sistema remoto. Fornisci la password e premi "INVIO" per accedere al sistema.
Accesso a un sistema come utente normale
A volte, potresti voler accedere a un sistema remoto utilizzando l'account di un utente normale se l'accesso root remoto è disabilitato. per fare ciò, segui la sintassi seguente
# ssh username@host-ip-address
O
# ssh -l username host-ip-address
Per accedere come utente 'john' residente sul sistema Debian remoto, eseguire il comando
# ssh [email protected]
Risultato campione
Puoi ottenere la stessa cosa usando il comando seguente.
# ssh -l john 173.82.208.144
Risultato campione
Configurazione dell'autenticazione senza password
A volte, potresti dover accedere costantemente ai tuoi sistemi remoti o potresti avere servizi che potrebbero richiedere l'accesso a questi sistemi. L'autenticazione tramite password può comportare perdite di tempo o ostacolare l'accesso alle applicazioni automatizzate che richiedono l'accesso ai sistemi remoti. Per questo motivo, è conveniente configurare un'autenticazione SSH senza password sui tuoi server remoti.
Passaggio 1:genera chiavi SSH
Il primo passo sarà generare chiavi SSH sul server usando il comando:
# ssh-keygen
Risultato campione
quando richiesto ad ogni passaggio, premi semplicemente 'INVIO' per mantenere le impostazioni predefinite
La chiave pubblica:id_rsa.pub
– viene salvato in ~/.ssh/
directory
Fase 2:copia della chiave pubblica SSH sul client remoto
Il passaggio successivo consisterà nel copiare la chiave pubblica generata nel sistema client remoto. Per fare ciò, utilizzeremo ssh-copy-id
comando. Il comando copia la chiave SSH sul client remoto come chiave autorizzata. Ciò consente successivi accessi automatici senza password.
# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Risultato campione
Ora puoi accedere senza problemi al sistema Debian remoto senza che ti venga richiesta una password
Risultato campione
La chiave pubblica viene salvata nel sistema client in ~/.ssh/authorized_keys
file.
ALCUNI PUNTI DA NOTARE
- I client SSH memorizzano le chiavi host sui sistemi a cui sono connessi. Queste chiavi sono denominate
known host keys
e sono memorizzati nel~/.ssh/
directory. - Le chiavi private –
id_rsa
dovrebbe essere accessibile solo all'utente root e non dovrebbe essere copiato su nessun sistema. Se divulgato a un'altra terza parte, ciò potrebbe portare ad attacchi man-in-the-middle in cui i sistemi client possono essere compromessi dagli hacker.