Che cos'è SSH?
SSH significa Secure Shell. Con SSH puoi accedere a macchine remote in modo sicuro poiché la connessione è crittografata. Con il comando ssh dal terminale Linux, possiamo connetterci a server Linux remoti e lavorare come se fosse il nostro computer. Al termine di questo tutorial, dovresti avere una comprensione completa di come utilizzare SSH per connetterti a un server remoto in Ubuntu.
Sintassi
La sintassi è la regola su come utilizzare il comando ssh. Puoi riorganizzare la sintassi, ma deve essere seguito un formato diretto. Di seguito è riportato un esempio di sintassi per l'utilizzo del comando ssh:
|
1 |
ssh remote_host |
Il nome di dominio o l'indirizzo IP a cui desideri connetterti è il remote_host come mostrato nel comando sopra. Questa sintassi presuppone che il tuo nome utente sul sistema remoto e sul tuo sistema locale siano gli stessi. Tuttavia, nel caso in cui i nomi utente non siano gli stessi, puoi indicarlo con questo comando:
|
1 |
ssh remote_username@remote_host |
Dovrai verificare la tua identità fornendo una password non appena ti connetti al server. Digita il comando exit per tornare alla tua sessione locale.
Come configurare SSH
Il file di configurazione principale di sshd in Ubuntu si trova in /etc/ssh/sshd_config. Se modifichi la configurazione SSH, le impostazioni del server SSHD cambieranno automaticamente. Prima di qualsiasi configurazione, assicurati di eseguire il backup della versione corrente del file utilizzando questo comando:
|
1 |
sudo cp /etc/ssh/sshd_config{,.bak} |
Usa un editor di testo per aprirlo:
|
1 |
sudo nano /etc/ssh/sshd_config |
Dovresti lasciare invariati la maggior parte dei parametri in questo file. Tuttavia, ci sono alcune cose a cui dovresti prestare attenzione:
|
1 |
Port 22 |
Le dichiarazioni della porta indicano la porta su cui il server SSHD è in attesa di connessioni. Il valore predefinito è 22. A meno che non ci siano motivi specifici, non è necessario modificare questa impostazione:
|
1 2 3 |
HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key |
La dichiarazione della chiave host indica dove si trova la chiave host globale:
|
1 2 |
SyslogFacility AUTH LogLevel INFO |
Il livello di log che deve essere registrato è indicato con questi due elementi. Se riscontri problemi nell'uso di SSH, un ottimo modo per identificare il problema è aumentare il livello dei log:
|
1 2 3 |
LoginGraceTime 120 PermitRootLogin yes StrictModes yes |
Queste opzioni definiscono alcune informazioni per l'accesso per impedire accessi non autorizzati quando i file di configurazione non sono sicuri:
|
1 2 |
X11Forwarding yes X11DisplayOffset 10 |
Queste configurazioni dei parametri sono denominate funzioni di inoltro X11. In questo modo, puoi visualizzare la GUI del sistema remoto sul sistema locale. Devi abilitare questa opzione sul server mentre ti connetti con l'opzione -X al client SSH.
Dopo aver apportato le modifiche, salva il file e chiudilo premendo CTRL-X e Y, quindi premi Invio. Se modifichi le impostazioni in / etc / ssh / sshd_config, devi riavviare il server sshd per applicare la modifica:
|
1 |
sudo service ssh restart |
Per i sistemi systemd come Ubuntu 16.04 o Debian Jessie usa questo comando:
|
1 |
sudo systemctl restart ssh |
Testa a fondo le tue modifiche per assicurarti che tutto funzioni perfettamente. Probabilmente dovresti mantenere attive alcune sessioni se apporti modifiche. In questo modo, potrai ripristinare la configurazione se necessario.
Come si accede a SSH tramite chiavi? È utile accedere a un sistema remoto con una password. Tuttavia, la soluzione migliore è configurare l'autenticazione basata su chiavi.
Cos'è l'autenticazione basata su chiavi?
L'autenticazione basata su chiavi crea due coppie di chiavi chiamate chiave privata e chiave pubblica. La chiave privata si trova sul computer dell'utente ed è protetta e tenuta segreta. La chiave pubblica può essere resa disponibile a chiunque o memorizzata su qualsiasi server a cui si desidera accedere. Se si tenta di connettersi utilizzando una coppia di chiavi, il server utilizza la chiave pubblica per generare un messaggio per il computer dell'utente. L'utente può leggere il messaggio solo utilizzando una chiave privata. Il computer dell'utente invia quindi una risposta al server e il server riconosce che l'utente è autentico. Dopo aver impostato la chiave, l'intero processo si completa automaticamente in background.
Come creare le chiavi SSH
Le chiavi SSH devono essere generate sul computer dal quale si desidera effettuare l'accesso. Di solito si tratta del computer locale. Inserire quanto segue nella riga di comando:
|
1 |
ssh-keygen -t rsa |
Quindi, accettare i valori predefiniti premendo il TASTO INVIO. Le chiavi verranno generate in ~/.ssh/id_rsa.pub e ~/.ssh/id_rsa. Successivamente, digitare il comando seguente per passare alla directory .ssh:
|
1 |
cd ~/.ssh |
Questi sono i permessi dei file:
|
1 |
ls -l |

Come si può notare, solo il proprietario può leggere e scrivere il file id_rsa. Pertanto, è necessario custodirlo in modo sicuro. Tuttavia, è possibile condividere il file id_rsa.pub e disporre dei permessi appropriati per questa attività. Il passo successivo consiste nel trasferire la chiave pubblica sul server utilizzando questa sintassi:
|
1 |
ssh-copy-id remote_host |
Questo avvia una sessione SSH ed è necessario utilizzare una password per l'autenticazione. Dopo aver inserito la password, la chiave pubblica verrà copiata nel file delle chiavi autorizzate del server in modo da potersi connettere la volta successiva senza password.
Come disabilitare l'autenticazione tramite password
Se viene generata una chiave SSH, è possibile migliorare la sicurezza del server disabilitando l'autenticazione basata solo su password. È possibile accedere al server utilizzando la chiave privata con la chiave pubblica installata sul server invece di utilizzare la console.
Nota: assicurarsi di aver installato la chiave pubblica sul server prima di procedere con questo passaggio. In caso contrario, si verrà bloccati!
Aprire il file di configurazione di sshd utilizzando questo comando:
|
1 |
sudo nano /etc/ssh/sshd_config |
Trovare e decommentare la riga che riporta PasswordAuthentication eliminando il carattere # all'inizio. Quindi è possibile modificare il valore in “no”:
|
1 |
PasswordAuthentication no |
Le opzioni PubkeyAuthentication e ChallengeResponseAuthentication sono impostate per impostazione predefinita e dovrebbero apparire così:
|
1 2 |
PubkeyAuthentication yes ChallengeResponseAuthentication no |
Non si dovrebbero modificare queste due impostazioni. Successivamente, salvare il file e chiuderlo dopo aver apportato le modifiche. Quindi, utilizzare il comando seguente per riavviare il demone SSH:
|
1 |
sudo systemctl restart ssh |
Infine, l'autenticazione tramite password è stata disabilitata e l'accesso al server sarà possibile solo tramite l'autenticazione con chiave SSH.
Conclusione
In questo tutorial, abbiamo mostrato come utilizzare SSH per connettersi in modo sicuro a un server remoto in Ubuntu. Imparare a usare SSH è fondamentale se si è un amministratore di sistema, quindi dopo aver appreso le basi di questo tutorial è possibile procedere con funzionalità più avanzate di SSH.
Buon computing!
Commenti
Ancora nessun commento. Scrivi il primo.