SSH sta per "Secure Shell" ed è un protocollo crittografato utilizzato per accedere e gestire un server remoto. SSH supporta anche vari meccanismi di autenticazione. SSH utilizza l'autenticazione basata su password e l'autenticazione basata su chiave pubblica per una connessione sicura tra un client e un server. L'autenticazione basata su chiave SSH è più sicura dell'autenticazione basata su password perché le chiavi sono molto difficili da indovinare o da decifrare utilizzando la potenza di calcolo attualmente disponibile.
In questo tutorial, ti mostreremo come configurare l'autenticazione basata su chiave SSH su un server Ubuntu 18.04.
Prerequisiti
- Due nuove VPS Ubuntu 18.04 sulla piattaforma Atlantic.Net Cloud.
- Password di root configurate su entrambi i server.
Fase 1:crea un server cloud Atlantic.Net
Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo Ubuntu 18.04 come sistema operativo con almeno 2GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.
Dopo aver effettuato l'accesso al tuo server Ubuntu 18.04, esegui il comando seguente per aggiornare il tuo sistema di base con gli ultimi pacchetti disponibili.
apt-get update -y apt-get upgrade -y
Fase 2:genera la chiave SSH sulla macchina client
Innanzitutto, accedi al tuo computer client e genera una nuova coppia di chiavi SSH eseguendo il comando seguente:
ssh-keygen -t rsa
Dovrai premere Invio per accettare il percorso del file predefinito e fornire una passphrase per aggiungere un ulteriore livello di sicurezza, come mostrato di seguito:
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: cd:58:c4:35:60:6f:a4:2e:f0:b7:42:c5:20:78:86:b2 [email protected] The key's randomart image is: +--[ RSA 2048]----+ | o. ..+o+ | | . o o. =.+ . | | o o. = o | | E o B . | | S = | | . o . | | . . | | . | | | +-----------------+
Il comando precedente genererà una coppia di chiavi RSA a 2048 bit con una passphrase sicura per impedire l'accesso da parte di utenti non autorizzati.
Puoi vedere le chiavi pubbliche e private generate con il seguente comando:
ls -l .ssh/id_rsa*
Dovresti vedere il seguente output:
-rw------- 1 root root 1766 Nov 1 11:03 .ssh/id_rsa -rw-r--r-- 1 root root 401 Nov 1 11:03 .ssh/id_rsa.pub
A questo punto, hai le chiavi pubbliche e private che puoi usare per autenticarti con il tuo server Ubuntu.
Passaggio 3:copia la chiave pubblica sul server Ubuntu
Successivamente, dovrai copiare la chiave pubblica dalla macchina client al tuo server Ubuntu 18.04. Puoi copiare la chiave pubblica con l'utilità ssh-copy-id come mostrato di seguito:
ssh-copy-id [email protected]
Dovresti vedere il seguente output:
The authenticity of host '192.168.0.102 (192.168.0.102)' can't be established. ECDSA key fingerprint is f7:9c:72:63:33:ac:d6:49:26:9c:af:c6:ff:11:27:01. Are you sure you want to continue connecting (yes/no)? yes
Digita "sì ” e premi INVIO continuare. Dovresti vedere il seguente output:
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password:
Successivamente, ti verrà chiesto di inserire il nome utente e la password remoti. Dopo l'avvenuta autenticazione, il contenuto della chiave pubblica ~/.ssh/id_rsa.pub verrà aggiunto al file ~/.ssh/authorized_keys dell'utente remoto come mostrato di seguito:
Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.
Passaggio 4 – Disattiva l'autenticazione con password SSH
Quindi, accedi alla tua macchina server Ubuntu 18.04 e disabilita l'autenticazione basata su password SSH per aggiungere un ulteriore livello di sicurezza al tuo server.
Puoi disabilitare l'autenticazione basata su password modificando il file /etc/ssh/sshd_config:
nano /etc/ssh/sshd_config
Trova le seguenti righe e cambia il valore in "no":
PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
Salva e chiudi il file, quindi riavvia il servizio SSH per applicare la configurazione:
systemctl restart ssh
Fase 5:accedi al server utilizzando le chiavi SSH
A questo punto, l'autenticazione basata su chiave SSH è configurata. Ora è il momento di accedere alla macchina server Ubuntu 18.04 con la chiave pubblica.
Puoi accedere al tuo server Ubuntu 18.04 semplicemente eseguendo il seguente comando:
ssh [email protected]
Se accedi per la prima volta, ti verrà richiesto come mostrato di seguito:
The authenticity of host '192.168.0.102 (192.168.0.102)' can't be established. ECDSA key fingerprint is f7:9c:72:63:33:ac:d6:49:26:9c:af:c6:ff:11:27:01. Are you sure you want to continue connecting (yes/no)? yes
Digita Sì e premi Invio chiave per continuare. Successivamente, ti verrà chiesto di inserire la passphrase per la tua chiave privata come mostrato di seguito:
Enter passphrase for key '/root/.ssh/id_rsa':
Fornisci la passphrase della tua chiave privata e premi Invio per accedere al tuo server.
Conclusione
Nel tutorial sopra, abbiamo imparato come impostare un'autenticazione basata su chiave SSH con una passphrase su Ubuntu 18.04. La connessione tra la tua macchina client e la macchina server Ubuntu 18.04 è ora altamente sicura. Puoi anche usare la stessa chiave per un altro server remoto. Se sei pronto per iniziare con l'autenticazione basata su chiave SSH, prova oggi stesso l'hosting VPS con Atlantic.Net.