# Generazione e configurazione di una chiave SSH in Ubuntu

In [Ubuntu](https://www.ionos.it/digitalguide/server/know-how/ubuntu-il-sistema-linux-per-tutti/) potete generare facilmente una coppia di chiavi SSH tramite terminale, per poi inviare la chiave pubblica al vostro server e configurare la possibilità di accesso sicuro. Qual è la procedura in dettaglio?

## Che cos’è una chiave SSH?

Se desiderate utilizzare una connessione sicura tramite [SSH](https://www.ionos.it/digitalguide/server/tools-o-strumenti/ssh/) è possibile usare l’**autenticazione** tramite chiavi SSH senza immissione della password. In pratica serve una coppia di chiavi SSH composta da una chiave pubblica e una privata. La chiave pubblica è memorizzata sul sistema verso il quale stabilire la connessione SSH, ad esempio un server. La chiave SSH privata, da custodire con cura, è generata e salvata su siti client ed è necessaria per **decifrare** la chiave SSH pubblica mentre s’instaura la connessione.

Consiglio Le chiavi SSH sono utilizzate oggi con i servizi più svariati. Inoltre, a partire dalla fine del 2021, l’SSH è uno dei due metodi di autenticazione disponibili per l’**accesso a GitHub tramite riga di comando**. Ulteriori informazioni su questo argomento sono disponibili nel nostro articolo “[Utilizzo di una chiave SSH con GitHub](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/chiavi-ssh-con-github/)”.

## Generazione e configurazione di una chiave SSH in Ubuntu: guida passo per passo

Accesso sicuro su server o per determinati servizi senza immissione della password: l’uso di coppie di chiavi SSH per l’autenticazione è estremamente pratico. Con la procedura seguente vi mostriamo un esempio basato su Ubuntu 22.04 su come **generare chiavi SSH in Ubuntu** e **configurare l’autenticazione su un server** per [utilizzare le chiavi SSH per la vostra connessione di rete](https://www.ionos.it/digitalguide/server/sicurezza/come-utilizzare-chiavi-ssh-per-la-vostra-connessione/).

Consiglio State cercando una soluzione sicura per il file hosting? Noleggiate il vostro [server SFTP](https://www.ionos.it/hosting/server-ftp "Noleggio di server Secure FTP con IONOS") con IONOS per trasferire e salvare i vostri dati in sicurezza tramite SSH e FTP.

### Primo passaggio: generazione di una coppia di chiavi SSH

Potete creare una coppia di chiavi SSH, composta da chiave pubblica e chiave privata, in modo rapido e diretto in Ubuntu tramite il **terminale**. Per farlo, avviate la riga di comando di Ubuntu ed eseguite il seguente comando:

```none
ssh-keygen
```

In questo modo viene generata automaticamente una **coppia di chiavi RSA con cifratura a 3.072 bit**, più che sufficiente per la maggior parte delle applicazioni. È possibile generare anche chiavi più grandi a 4.096 bit aggiungendo al comando il parametro “-b 4096”.

```none
ssh-keygen -b 4096
```

Dopo aver eseguito il comando, Ubuntu genera una coppia di chiavi. Il sistema chiede se salvare le chiavi SSH nella **cartella utente di Ubuntu** (sottocartella */.ssh*); potete confermare la richiesta con il tasto Invio. In alternativa, indicate un **altro percorso**.

[![Immagine: Generazione di chiavi SSH tramite il terminale di Ubuntu](https://www.ionos.it/digitalguide/fileadmin/_processed_/4/9/csm_ubuntu-create-ssh-key_7c85ab0c5e.webp "Generazione di chiavi SSH tramite il terminale di Ubuntu")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/ubuntu-create-ssh-key.jpg) Generazione di chiavi SSH tramite il terminale di Ubuntu. Dopo aver scelto il percorso di memorizzazione della coppia di chiavi, Ubuntu vi offre la possibilità di **definire una passphrase sicura**. Una passphrase aggiunge un **ulteriore livello di sicurezza** al metodo di autenticazione criptato per evitare l’accesso da parte di utenti non autorizzati. Digitate la passphrase desiderata oppure lasciate la voce vuota se preferite fare a meno di questo livello di sicurezza.

In entrambi i casi, confermate con il tasto Invio per ricevere la **conferma dell’esito positivo della generazione della chiave** con un’“immagine randomart” della chiave SSH:

[![Immagine: “Immagine randomart” di una coppia di chiavi SSH in Ubuntu](https://www.ionos.it/digitalguide/fileadmin/_processed_/1/2/csm_ubuntu-ssh-key-randomart-image_824ddd1030.webp "“Immagine randomart” di una coppia di chiavi SSH in Ubuntu")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/ubuntu-ssh-key-randomart-image.jpg) “Immagine randomart” di una coppia di chiavi SSH in Ubuntu.  Consiglio Non siete sicuri della versione del software che state utilizzando? Leggete l’articolo seguente per sapere come [visualizzare la versione di Ubuntu](https://www.ionos.it/digitalguide/server/know-how/trovare-la-versione-di-ubuntu/).

### Secondo passaggio: trasmissione della chiave pubblica sul server

Nel prossimo passaggio la chiave pubblica viene trasmessa al sistema di destinazione con il quale creare successivamente le connessioni SSH. A tal fine è necessario il **nome utente** che usate per accedere al sistema e l’**indirizzo IP** e/o il dominio del sistema. Se non avete ancora definito nessun nome utente, potete usare al suo posto l’utente “root”.

Per trasmettere la chiave SSH pubblica, Ubuntu utilizza lo strumento **ssh-copy-id** come impostazione predefinita. La sintassi del comando è la seguente:

```bash
ssh-copy-id nomeutente@indirizzoip/dominio
```

Se create **per la prima volta una connessione** con questo host di destinazione, un messaggio del terminale segnala che non è possibile determinare l’autenticazione dell’host (“authenticity of host … can’t be established”). Digitate “**yes**” e confermate l’immissione per proseguire con la configurazione.

[![Immagine: Trasmissione della chiave SSH pubblica tramite terminale Ubuntu](https://www.ionos.it/digitalguide/fileadmin/_processed_/e/f/csm_ubuntu-add-public-key-terminal_d2f6b4af73.webp "Trasmissione della chiave SSH pubblica tramite terminale Ubuntu")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/ubuntu-add-public-key-terminal.jpg) Trasmissione della chiave SSH pubblica tramite terminale Ubuntu. Quindi, il servizio cerca la chiave creata in precedenza. Se la trova, potete riprendere la procedura digitando la password per l’accesso al sistema di destinazione. A configurazione terminata, ricevete il seguente **output** se la chiave pubblica è stata trasmessa correttamente:

[![Immagine: Chiave SSH in Ubuntu: trasmissione corretta al sistema di destinazione](https://www.ionos.it/digitalguide/fileadmin/_processed_/7/c/csm_ubuntu-ssh-key-successful-add_0db82eec57.webp "Chiave SSH in Ubuntu: trasmissione corretta al sistema di destinazione")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/ubuntu-ssh-key-successful-add.jpg) Chiave SSH in Ubuntu: trasmissione corretta al sistema di destinazione. ### Terzo passaggio: autenticazione SSH sull’host di destinazione

Ora potete accedere in qualsiasi momento tramite SSH al dispositivo o al server che dispone della chiave pubblica. Come nel caso della trasmissione della chiave, sono necessari il **nome utente** e l’**indirizzo IP e/o il dominio dell’host di destinazione**, da inserire come previsto nel comando seguente:

```bash
ssh nomeutente@indirizzoip/dominio
```

Se avete configurato una **passphrase per la coppia di chiavi**, questa viene richiesta al passaggio successivo. Digitate la password assegnata e premete quindi “**Unlock**” per collegarvi al sistema di destinazione.

[![Immagine: Chiave SSH in Ubuntu: immissione della passphrase](https://www.ionos.it/digitalguide/fileadmin/_processed_/0/d/csm_ubuntu-ssh-service-config-file-change-passauth_8d9800b857.webp "Chiave SSH in Ubuntu: immissione della passphrase")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/ubuntu-ssh-service-config-file-change-passauth.jpg) Chiave SSH in Ubuntu: immissione della passphrase. ### Quarto passaggio: disattivare l’immissione della password

Se l’accesso con la coppia di chiavi SSH è andato a buon fine, l’**accesso tramite password** per impostazione predefinita non è più necessario. Questo metodo di autenticazione è comunque sempre attivo, anche per le persone non autorizzate che cercano di accedere al sistema tramite [attacchi di forza bruta](https://www.ionos.it/digitalguide/server/sicurezza/metodo-forza-bruta-definizione-e-misure-preventive/).

Per ottenere maggiore sicurezza da questo punto di vista, è possibile disattivare l’accesso tramite password sul server e/o sul dispositivo di destinazione. A tal fine, accedete tramite SSH e aprite quindi il **file di configurazione del servizio SSH**:

```bash
sudo nano /etc/ssh/sshd_config
```

Nel file di configurazione, cercate la voce “**PasswordAuthentication**” e impostatela su “**no**”.

[![Immagine: Modifiche del file di configurazione del servizio SSH](https://www.ionos.it/digitalguide/fileadmin/_processed_/7/a/csm_ubuntu-public-ssh-key-terminal_1c3cbebfc2.webp "Modifiche del file di configurazione del servizio SSH")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/ubuntu-public-ssh-key-terminal.jpg) Modifiche del file di configurazione del servizio SSH. Salvate le modifiche al file di configurazione e avviate quindi il servizio SSH con il comando seguente:

```bash
sudo systemctl restart ssh
```

## Come trasmettere manualmente la vostra chiave SSH in Ubuntu

Lo strumento **ssh-copy-id**, descritto al secondo passaggio, non è disponibile su tutti i sistemi. In questo caso, è comunque possibile trasmettere la chiave pubblica generata al sistema di destinazione **manualmente** e con facilità nel modo seguente.

Per prima cosa, eseguite il comando seguente per **visualizzare la chiave pubblica**:

```bash
cat ~/.ssh/id_rsa.pub
```

[![Immagine: Chiave pubblica SSH generata nel terminale Ubuntu](https://www.ionos.it/digitalguide/fileadmin/_processed_/7/a/csm_ubuntu-public-ssh-key-terminal_1c3cbebfc2.webp "Chiave pubblica SSH generata nel terminale Ubuntu")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/ubuntu-public-ssh-key-terminal.jpg) Chiave pubblica SSH generata nel terminale Ubuntu. Copiate quindi la chiave risultante nel file “**authorized\_keys**” presente nella cartella “**ssh**” sull’host di destinazione. Se la cartella non è ancora presente, createla con i comandi seguenti:

```bash
mkdir -p ~/.ssh
```

Utilizzate quindi il comando seguente per trasmettere la chiave:

```bash
echo chiave >> ~/.ssh/authorized_keys
```

Nel comando, al posto di “chiave”, inserite l’output precedentemente ottenuto partendo da “ssh-rsa”.

Nell’ultimo passaggio verificate di aver rimosso tutti i gruppi e tutte le ulteriori autorizzazioni per la cartella “ssh” e per il file “authorized\_keys”:

```bash
chmod -R go= ~/.ssh
```

Consiglio Cercate ulteriori informazioni sugli argomenti “SSH” e “Ubuntu”? I seguenti articoli della Digital Guide potrebbero interessarvi:

- [Come attivare SSH su Ubuntu](https://www.ionos.it/digitalguide/server/configurazione/ubuntu-ssh/)
- [Avviare il server SSH sul Raspberry Pi](https://www.ionos.it/digitalguide/server/configurazione/avviare-il-server-ssh-sul-raspberry-pi-come-funziona/)
- [Come installare Ubuntu da una chiavetta USB](https://www.ionos.it/digitalguide/server/tools-o-strumenti/installare-ubuntu-dalla-chiavetta-usb/)
- [Server FTP su Ubuntu](https://www.ionos.it/digitalguide/server/configurazione/server-ftp-su-ubuntu-installazione-e-configurazione/)


This is a markdown version of: [https://www.ionos.it/digitalguide/server/configurazione/chiave-ssh-in-ubuntu/](https://www.ionos.it/digitalguide/server/configurazione/chiave-ssh-in-ubuntu/) for AI/LLM consumption.