Come utilizzare chiavi SSH per la vostra connessione di rete

Grazie all’aiuto del protocollo di rete SSH potete stabilire una connessione di rete sicura e cifrata con un dispositivo remoto, come ad esempio un server. Con una connessione via SSH di questo tipo gestite il server del vostro computer locale o ve ne servite tramite la linea dei comandi. A seconda della versione del protocollo usata entrano in azione algoritmi di crittografia diversi, ad esempio SSH-2 usa di regola l’algoritmo AES. Prima di poter procedere con la cifratura della connessione, bisogna autenticarsi. Mentre il server viene identificato dal client tramite un certificato di sicurezza, c’è una variante diversa per il login del client sul server. Oltre a quella classica, nota a tutti, tramite username e password, si può usare anche quella della chiave pubblica e privata (coppia di chiavi).

Autenticazione con chiave pubblica

Il metodo di autenticazione tramite chiavi SSH, detto anche crittografia con chiave pubblica, comporta alcuni vantaggi rispetto al login classico con username e password. Così non viene salvata sul server la password usata (funzione hash), ma solo la chiave pubblica. La chiave privata resta sul proprio computer, quindi resta segreta. Inoltre potete criptarla con un’ulteriore identificazione. La chiave pubblica può verificare le firme, che sono generate attraverso le chiavi SSH private, e rende possibile un login automatico sul server. Anche se un utente non autorizzato dovesse pervenire alla chiave pubblica, è quasi impossibile che riesca a determinare la chiave privata corretta. Se invece di usare una password facile, configurate una connessione via SSH, quindi tramite una coppia di chiavi, non solo riuscite a evitarvi la finestra di login, ma vi garantite anche una sicurezza maggiore.

Come configurare le chiavi SSH

Per poter usufruire dei vantaggi del protocollo SSH, avete bisogno di uno dei pacchetti SSH disponibili come OpenSSH per i sistemi operativi Unix, WinSCP per Windows e PuTTY sia per Windows sia per sistemi Unix. Oltre al protocollo SSH, i pacchetti contengono anche delle applicazioni con l’aiuto delle quali si possono generare chiavi SSH. Nelle istruzioni seguenti vi spieghiamo passo per passo come configurare l’uso di una coppia di chiavi con OpenSSH e PuTTY.

Configurare le chiavi SSH con OpenSSH

  1. Per iniziare a generare le chiavi SSH, dovete inserire il seguente comando:

    ssh-keygen -t rsa -b 4096

    Attraverso i parametri opzionali specificate il tipo di crittografia (-t), che in questo caso è l’algoritmo RSA, i bit di lunghezza della chiave (-b), dove 4096 corrisponde al valore massimo. Se manca questa specificazione, vengono utilizzate le impostazioni di configurazione standard per la generazione.
     
  2. Nella finestra seguente compare la cartella che potete modificare e dove potete salvare la chiave SSH (“Enter file in which to save the key“) e avete inoltre l’opzione di definire una passphrase per la chiave privata (“Enter passphrase”). Se volete usare la directory standard e non impostare nessuna identificazione per le vostre chiavi, potete lasciare il campo vuoto e saltarlo premendo invio.
     
  3. Entrambe le chiavi SSH sono ora salvate in diversi file nella suddetta cartella, cioè quella che avete scelto. Il file id_rsa.pub contiene la chiave pubblica, che è salvata solo nella sottocartella .ssh nel file authorized_keys sul server. Infine copiate la chiave nella cartella Home del rispettivo utente sul server:

    scp ~/.ssh/id_rsa.pub USER@HOST.it
     
  4. Loggatevi sul server e copiate la chiave pubblica nella giusta cartella:

    ssh USER@HOST.it

    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
     
  5. A questo punto la coppia di chiavi nonché, qualora definita, la relativa passphrase dovrebbero essere utilizzate automaticamente nella creazione di una connessione SSH. Nel caso in cui non funzionasse, controllate se i permessi della cartella .ssh e il file authorized_keys sono configurati correttamente.
     
  6. Dato che l’ autenticazione a chiave pubblica, sostituisce il normale processo di identificazione tramite password, potete annullarlo dal file di configurazione SSH  /etc/ssh/sshd_config (o anche direttamente /etc/, se usate ad esempio Cygwin), modificando la riga “Password Authentication yes” in “Password Authentication no” e riavviando il server

Generare chiavi SSH con PuTTY Key Generator

  1. Se utilizzate PuTTY per instaurare una connessione SSH, avete di solito a disposizione anche il PuTTYgen, che vi fornisce di default gli strumenti adatti per generare una coppia di chiavi. Trovate il PuTTY Key Generator nella stessa cartella, nella quale è installato PuTTY , cioè dove l’avete decompresso. Se dovesse mancare il tool, potete scaricarlo facilmente dalla PuTTY Download Page.
     
  2. Dopo l’avvio scegliete in “Parameters” il tipo di cifratura. Per SSH-2 potete decidere tra i tipi RSA e DAS. Nell’opzione “Number of bits in a generated key” definite la lunghezza di chiave desiderata.
     
  3. Cliccate poi su “Generate” e muovete il mouse sul campo libero della finestra di dialogo avanti e indietro, per assicurarvi l’esclusività del codice.
     
  4. Se la generazione è conclusa, potete munire ulteriormente in maniera opzionale la coppia di chiavi generata con una nota tecnica o una passphrase.
     
  5. Salvate entrambe le chiavi cliccando su “Save private key” e “Save public key”.
     
  6. Per trasferire la chiave pubblica sul server, collegatevi su PuTTY e copiate, per concludere, il codice negli appunti ("Public key for pasting into OpenSSH authorized_keys file") nel file authorized_keys.
     
  7. Da ultimo trascrivete la chiave privata nel client. Aprite il menù di configurazione e scegliete il file della chiave privata in “Category” > “Connection” > “SSH” > “Auth” > “Private key file for authentication”.
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.