Introduzione

Secure Shell (SSH) è un protocollo di rete crittografica utilizzato per una connessione sicura tra un client e un server e supporta vari meccanismi di autenticazione.

I due meccanismi più popolari sono l'autenticazione basata su password e l'autenticazione basata su chiave pubblica. L'uso delle chiavi SSH è più sicuro e conveniente dell'autenticazione con password tradizionale.

Questo tutorial spiega come generare chiavi SSH su Windows con PuTTYgen. Ti mostreremo anche come impostare un'autenticazione basata su chiave SSH e collegarti ai tuoi server Linux remoti senza inserire una password.

Scarica PuTTYgen

PuTTYgen è un'utilità open source che consente di generare chiavi SSH per il più popolare client SSH di Windows PuTTY.

PuTTYgen è disponibile come file eseguibile autonomo ed è anche parte del pacchetto di installazione .msi PuTTY. Se non hai installato PuTTYgen, vai alla pagina di download di PuTTY e scarica il pacchetto di installazione di PuTTY. L'installazione è semplice, fai doppio clic sul pacchetto di installazione e segui le istruzioni.

Creazione di chiavi SSH con PuTTYgen

Per generare una coppia di chiavi SSH su Windows utilizzando PuTTYgen, procedere come segue.

Avviare lo strumento PuTTYgen, facendo doppio clic sul suo file .exe o andando al menu Start di Windows → PuTTY (64-bit) → PuTTYgen.

Per "Tipo di chiave da generare" lasciare RSA predefinito. Il "Number of bits in a generated key", 2048 è sufficiente per la maggior parte delle persone. In alternativa, puoi cambiarlo in 4096.

Fare clic sul pulsante "Generate" per avviare il processo di generazione della nuova coppia di chiavi.

Ti verrà chiesto di spostare il mouse sull'area vuota della sezione Key (chiave) per generare casualità. Quando si sposta il puntatore, la barra di avanzamento verde avanza. Il processo dovrebbe richiedere alcuni secondi.

Facoltativamente, se si desidera utilizzare una passphrase, digitarla nel campo "Key passphrase" e confermare la stessa passphrase nel campo "Confirm passphrase". Se scegli di utilizzare una passphrase otterrai un ulteriore livello di sicurezza proteggendo la chiave privata da un uso non autorizzato.

Se si imposta una passphrase, sarà necessario immettere la passphrase ogni volta che viene utilizzata la chiave privata.

Salvare la chiave privata facendo clic sul pulsante "Save private key". È possibile salvare il file in qualsiasi directory utilizzando l'estensione .ppk (PuTTY Private Key) ma è consigliabile salvarlo in un luogo in cui è possibile trovarlo facilmente. È comune utilizzare un nome descrittivo per il file della chiave privata.

Facoltativamente, puoi anche salvare la chiave pubblica, sebbene possa essere rigenerata in seguito caricando la chiave privata.

Fare clic con il tasto destro nel campo di testo "Public key for pasting into OpenSSH authorized_keys file" e selezionare tutti i caratteri facendo clic su "Select all". Apri un editor di testo, incolla i caratteri e salvalo. Assicurati di incollare l'intera chiave. Si consiglia di salvare il file nella stessa directory in cui è stata salvata la chiave privata, usando lo stesso nome della chiave privata e .txt o .pub come estensione del file.

Questa è la chiave che aggiungerai al tuo server Linux.

Copiare la chiave pubblica sul tuo server Linux

Ora che hai generato la coppia di chiavi SSH, il passaggio successivo è copiare la chiave pubblica sul server che desideri gestire.

Avvia il programma PuTTY e accedi al tuo server Linux remoto.

Se la directory SSH dell'utente non esiste, crearla con il comando mkdir e impostare le autorizzazioni corrette:

mkdir -p ~/.ssh
chmod 0700 ~/.ssh

Apri l' editor di testo e incolla la chiave pubblica (Public key) creata nel passaggio precedente nel file ~/.ssh/authorized_keys:

nano ~/.ssh/authorized_keys

L'intero testo della chiave pubblica dovrebbe essere su un'unica riga.

Eseguire il comando chmod seguente per assicurarsi che solo l'utente possa leggere e scrivere il file ~/.ssh/authorized_keys:

chmod 0600 ~/.ssh/authorized_keys

Accedere al server usando le chiavi SSH

Pageant è un agente di autenticazione SSH PuTTY che contiene le chiavi private nella memoria. Il binario Pageant è una parte del pacchetto di installazione di .msi PuTTY e può essere avviato andando nel menu Start di Windows → PuTTY (64-bit) → Pageant.

Quando avvii Pageant, inserirà un'icona nella barra delle applicazioni. Fare doppio clic sull'icona e si aprirà la finestra Pageant.

Per caricare una chiave, premi il pulsante "Aggiungi chiave" che aprirà una finestra di dialogo per un nuovo file. Individua il file della chiave privata e premi "Apri". Se non hai impostato una passphrase, la chiave verrà caricata immediatamente. Altrimenti, ti verrà richiesto di inserire la passphrase.

Immettere la password e Pageant caricherà la chiave privata.

Dopo aver completato i passaggi precedenti, dovresti essere in grado di accedere al server remoto senza che ti venga richiesta una password.

Per testarlo, apri una nuova sessione PuTTY SSH e prova ad accedere al tuo server. PuTTY utilizzerà la chiave caricata e si accederà al server Linux senza immettere la password.

Disabilitare l'autenticazione con password SSH

Per aggiungere un ulteriore livello di sicurezza al server è possibile disabilitare l'autenticazione della password per SSH.

Prima di disabilitare l'autenticazione della password SSH, assicurarsi di poter accedere al server senza password e l'utente con cui si accede dispone dei privilegi sudo.

Accedi al tuo server remoto e apri il file di configurazione SSH /etc/ssh/sshd_config con il editor di testo:

sudo nano /etc/ssh/sshd_config

Cerca le seguenti direttive e modifica come segue:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Una volta terminato, salvare il file e riavviare il servizio SSH digitando:

sudo systemctl restart ssh

A questo punto, l'autenticazione basata su password è disabilitata.

Conclusione

In questo tutorial, hai imparato come generare una nuova coppia di chiavi SSH e come impostare un'autenticazione basata su chiave SSH. È possibile aggiungere la stessa chiave a più server remoti. Ti abbiamo anche mostrato come disabilitare l'autenticazione con password SSH e aggiungere un ulteriore livello di sicurezza al tuo server.