Ricerca nel sito web

Come configurare le chiavi SSH su Ubuntu 12.04


introduzione

Il protocollo Secure Shell (o SSH) è un protocollo di rete crittografico che consente agli utenti di accedere in modo sicuro a un computer remoto su una rete non protetta.

Sebbene SSH supporti l'autenticazione basata su password, in genere si consiglia di utilizzare le chiavi SSH. Le chiavi SSH sono un metodo più sicuro per accedere a un server SSH, perché non sono vulnerabili ai comuni attacchi di pirateria informatica delle password.

La generazione di una coppia di chiavi SSH crea due lunghe stringhe di caratteri: una chiave pubblica e una privata. Puoi posizionare la chiave pubblica su qualsiasi server e quindi connetterti al server utilizzando un client SSH che ha accesso alla chiave privata.

Quando le chiavi pubblica e privata corrispondono, il server SSH concede l'accesso senza la necessità di una password. Puoi aumentare ulteriormente la sicurezza della tua coppia di chiavi proteggendo la chiave privata con una passphrase facoltativa (ma fortemente consigliata).

Nota: se stai cercando informazioni sull'impostazione delle chiavi SSH nel tuo account DigitalOcean, fai riferimento alla nostra documentazione del prodotto DigitalOcean sulle chiavi SSH

Passaggio 1: creazione della coppia di chiavi

Il primo passaggio consiste nel creare una coppia di chiavi sul computer client. Questo sarà probabilmente il tuo computer locale. Digita il seguente comando nella riga di comando locale:

  1. ssh-keygen -t ed25519
Output
Generating public/private ed25519 key pair.

Vedrai una conferma che il processo di generazione della chiave è iniziato e ti verranno richieste alcune informazioni, di cui parleremo nel passaggio successivo.

Nota: se sei su un sistema più vecchio che non supporta la creazione di coppie di chiavi ed25519, o se il server a cui ti stai connettendo non le supporta, dovresti creare un forte rsa coppia di chiavi invece:

  1. ssh-keygen -t rsa -b 4096

Questo cambia il flag -t \type” in rsa, e aggiunge il flag -b 4096 \bits” per creare un bit 4096 chiave.

Passaggio 2: specificare dove salvare le chiavi

Il primo prompt del comando ssh-keygen ti chiederà dove salvare le chiavi:

Output
Enter file in which to save the key (/home/sammy/.ssh/id_ed25519):

Puoi premere INVIO qui per salvare i file nella posizione predefinita nella directory .ssh della tua home directory.

In alternativa, puoi scegliere un altro nome file o percorso digitandolo dopo il prompt e premendo INVIO.

Passaggio 3: creazione di una passphrase

Il secondo e ultimo prompt di ssh-keygen ti chiederà di inserire una passphrase:

Output
Enter passphrase (empty for no passphrase):

Sta a te decidere se utilizzare una passphrase, ma è fortemente incoraggiata: la sicurezza di una coppia di chiavi, indipendentemente dallo schema di crittografia, dipende comunque dal fatto che non è accessibile a nessun altro.

Se una chiave privata senza passphrase entra in possesso di un utente non autorizzato, sarà in grado di accedere a qualsiasi server configurato con la chiave pubblica associata.

Il principale svantaggio di avere una passphrase, ovvero digitarla, può essere mitigato utilizzando un servizio ssh-agent, che memorizzerà temporaneamente la tua chiave sbloccata e la renderà accessibile al client SSH. Molti di questi agenti sono integrati con il portachiavi nativo del tuo sistema operativo, rendendo il processo di sblocco ancora più semplice.

Ricapitolando, l'intero processo di generazione delle chiavi si presenta così:

  1. ssh-keygen -t ed25519
Output
Generating public/private ed25519 key pair. Enter file in which to save the key (/home/sammy/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/sammy/.ssh/id_ed25519 Your public key has been saved in /home/sammy/.ssh/id_ed25519.pub The key fingerprint is: SHA256:EGx5HEXz7EqKigIxHHWKpCZItSj1Dy9Dqc5cYae+1zc sammy@hostname The key's randomart image is: +--[ED25519 256]--+ | o+o o.o.++ | |=oo.+.+.o + | |*+.oB.o. o | |*. + B . . | | o. = o S . . | |.+ o o . o . | |. + . ... . | |. . o. . E | | .. o. . . | +----[SHA256]-----+

La chiave pubblica si trova ora in /home/sammy/.ssh/id_ed25519.pub. La chiave privata si trova ora in /home/sammy/.ssh/id_ed25519.

Passaggio 4: copia della chiave pubblica sul server

Una volta generata la coppia di chiavi, è il momento di posizionare la chiave pubblica sul server a cui vuoi connetterti.

Puoi copiare la chiave pubblica nel file authorized_keys del server con il comando ssh-copy-id. Assicurati di sostituire il nome utente e l'indirizzo di esempio:

  1. ssh-copy-id sammy@your_server_address

Una volta completato il comando, sarai in grado di accedere al server tramite SSH senza che ti venga richiesta una password. Tuttavia, se imposti una passphrase quando crei la tua chiave SSH, ti verrà chiesto di inserire la passphrase in quel momento. Questo è il tuo client ssh locale che ti chiede di decifrare la chiave privata, non è il server remoto che chiede una password.

Passaggio 5: disabilitazione dell'autenticazione SSH basata su password (opzionale)

Dopo aver copiato le chiavi SSH sul server, potresti voler vietare completamente gli accessi con password configurando il server SSH per disabilitare l'autenticazione basata su password.

Attenzione: prima di disabilitare l'autenticazione basata su password, assicurati di poter accedere correttamente al server con la tua chiave SSH e che non ci siano altri utenti sul server che utilizzano password per accedere.

Per disabilitare l'autenticazione SSH basata su password, aprire il file di configurazione SSH. In genere si trova nella seguente posizione:

  1. sudo nano /etc/ssh/sshd_config

Questo comando aprirà il file all'interno dell'editor di testo nano. Trova la riga nel file che include PasswordAuthentication (o crea la riga se non esiste), assicurati che non sia commentata con un # all'inizio di la riga e cambiala in no:

PasswordAuthentication no

Salva e chiudi il file quando hai finito. In nano, usa CTRL+O per salvare, premi INVIO per confermare il nome del file, quindi CTRL+X per Uscita.

Ricarica il servizio sshd per rendere effettive queste modifiche:

  1. sudo systemctl reload sshd

Prima di uscire dalla sessione SSH corrente, effettuare una connessione di prova in un altro terminale per verificare che sia ancora possibile connettersi.

Conclusione

In questo tutorial abbiamo creato una coppia di chiavi SSH, copiato la nostra chiave pubblica su un server e (facoltativamente) disabilitato completamente l'autenticazione basata su password.

Per ulteriori informazioni su SSH e sul servizio SSH, incluso come configurare l'autenticazione a più fattori, leggi i nostri tutorial correlati:

  • Come utilizzare SSH per connettersi a un server remoto
  • Nozioni di base su SSH: utilizzo di server, client e chiavi SSH
  • Come impostare l'autenticazione a più fattori per SSH su Ubuntu 20.04