Introduzione
Stabilire una connessione SSH (Secure Shell) è essenziale per accedere e gestire efficacemente un server remoto. Le chiavi crittografate sono un insieme di credenziali di accesso utilizzate per stabilire una connessione sicura.
Questa guida ti mostrerà come generare chiavi SSH su Ubuntu 18.04. Tratteremo anche la configurazione dell'autenticazione basata su chiave SSH per la connessione a un server remoto senza richiedere una password.
Prerequisiti
- Un server che esegue Ubuntu 18.04, abilitato SSH su Ubuntu
- Un account utente con sudo privilegi
- Accesso a una finestra di terminale/riga di comando (Ctrl-Alt-T)
Creazione di chiavi SSH su Ubuntu
Fase 1:genera la coppia di chiavi SSH
Sul tuo cliente sistema – quello che stai usando per connetterti al server – devi creare una coppia di codici chiave.
Per generare una coppia di codici chiave SSH , inserisci i comandi:
mkdir –p $HOME/.ssh
chmod 0700 $HOME/.ssh
ssh-keygen
Questo creerà una directory nascosta per memorizzare le tue chiavi SSH e modificare le autorizzazioni per quella directory. Il ssh-keygen il comando crea una coppia di chiavi RSA a 2048 bit.
Per una maggiore sicurezza, usa RSA4096:
ssh –keygen –t rsa 4096
Se hai già generato una coppia di chiavi, verrà richiesto di sovrascriverle e quelle vecchie chiavi non funzioneranno più.
Il sistema ti chiederà di creare una passphrase come ulteriore livello di sicurezza. Inserisci una passphrase memorabile e premi Invio .
Passaggio 2:copia la chiave pubblica sul server Ubuntu
Innanzitutto, ottieni l'indirizzo IP del server Ubuntu a cui desideri connetterti.
In una finestra di terminale, inserisci:
ip a
L'indirizzo IP del sistema è elencato nella seconda voce:
Sul cliente sistema, utilizza ssh-copy-id comando per copiare le informazioni sull'identità sul server Ubuntu :
ssh-copy-id [email protected]<server_IP>
Sostituisci IP_server con l'indirizzo IP effettivo del tuo server.
Se è la prima volta che ti connetti al server, potresti visualizzare un messaggio che ti informa che l'autenticità dell'host non può essere stabilita:
The authenticity of host '192.168.0.15 (192.168.0.15)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)?
Digita sì e premi Invio .
Il sistema controllerà il tuo cliente sistema per id_rsa.pub chiave generata in precedenza. Quindi ti verrà chiesto di inserire la password per il server account utente. Digitalo (il sistema non visualizzerà la password) e premi Invio .
Il sistema copierà i contenuti di ~/.ssh/id_rsa.pub dal cliente sistema nel ~/.ssh/authorized_keys directory del server sistema.
Il sistema dovrebbe visualizzare:
Number of key(s) added: 1
Metodo alternativo per copiare manualmente la chiave SSH
Se il tuo sistema non dispone di ssh-copy-id comando, puoi copiare la chiave manualmente su SSH.
Usa il seguente comando:
cat ~/.ssh/id_rsa.pub | ssh [email protected]_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
Fase 3- Accedi al server remoto
Per accedere a un server remoto, inserisci il comando:
ssh [email protected]_IP
Il sistema non dovrebbe richiedere una password poiché sta negoziando una connessione sicura utilizzando le chiavi SSH. Se hai utilizzato una passphrase di sicurezza, ti verrà chiesto di inserirla. Dopo averlo fatto, sei loggato.
Passaggio 4:Disattiva l'autenticazione della password
Questo passaggio crea un ulteriore livello di sicurezza. Se sei l'unica persona che accede al server, puoi disabilitare la password. Il server accetterà solo un accesso con la tua chiave privata che corrisponda alla chiave pubblica memorizzata.
Modifica sshd_config file:
sudo nano /etc/ssh/sshd_config
Cerca nel file e trova la Autenticazione password opzione.
Modifica il file e cambia il valore in no :
...
PasswordAuthentication no
...
Salva il file ed esci, quindi riavvia il servizio SSH:
sudo systemctl restart ssh
Verifica che SSH funzioni ancora prima di terminare la sessione:
ssh [email protected]_IP
Se tutto funziona, puoi chiudere e riprendere il lavoro normalmente.