Vai al contenuto

Impostazioni cookie

Scelga per ogni tipo quali cookie consente. Può modificare la sua scelta in qualsiasi momento tramite Impostazioni cookie in fondo a ogni pagina. Informativa sulla privacy

Necessari

Sempre attivi

Servono per accedere, conservare il carrello e ricordare le sue scelte. Sono sempre attivi.

Quali cookie?
  • weboke_sessie, weboke_klant, weboke_remember: la sua sessione e la permanenza dell'accesso
  • weboke_basket: il suo carrello
  • wkBtwIncl: visualizzazione dei prezzi con o senza IVA
  • wok_cookies: la sua scelta sui cookie, 12 mesi

Misurano quale annuncio porta a una visita o a un ordine, così non paghiamo annunci che non funzionano.

Quali cookie?
  • Google Ads tramite Google Tag Manager (_gcl_au, _gcl_aw), fino a 90 giorni
  • OpenAI Ads, annunci in ChatGPT
  • wok_aff: tramite quale partner è arrivato da noi (programma di affiliazione), 60 giorni

4,6

Paese e lingua

Ogni paese ha il suo sito, con i prezzi e l'IVA di quel paese.

Vedi

Creare e usare chiavi SSH

Modulo 2: SSH e chiavi · Tempo di lettura: 10 minuti

Obiettivo della lezione: Al termine di questa lezione saprà creare una coppia di chiavi, mettere la chiave pubblica sul Suo server, accedere senza password e custodire la Sua chiave privata in modo che un portatile smarrito non diventi una catastrofe.

Concetti chiave: coppia di chiavi, chiave pubblica, chiave privata, ed25519, RSA, passphrase, ssh-agent, ssh-copy-id, authorized_keys, permessi 700 e 600, una chiave per dispositivo, chiave FIDO2

Perché le chiavi sono meglio delle password

Nella lezione 1.3 ha effettuato l'accesso con una password. Funziona, ma un server su internet riceve fin dal primo minuto la visita di programmi che cercano di indovinare le password. Basta dare un'occhiata al log di un server appena installato:

root@web1:~# journalctl -u ssh --since "1 hour ago" | grep -c "Failed password"
214

Centinaia di tentativi all'ora sono normali. Una password robusta li ferma, ma ha creato un punto debole di cui non ha bisogno. Con una chiave SSH indovinare è inutile: non c'è nulla da indovinare che si trovi in un elenco di parole.

Una chiave è composta da due parti che vanno insieme, una coppia di chiavi:

  • La chiave privata rimane sul Suo computer. Chi possiede questo file (e conosce la passphrase) può accedere. Non la condivida con nessuno, nemmeno con il Suo provider o con un servizio di assistenza.
  • La chiave pubblica la consegna al server. Può vederla chiunque: con essa non si può accedere, solo verificare.

Durante l'accesso il server non invia alcuna password sulla linea. Il Suo computer dimostra con una firma di possedere la chiave privata, e il server verifica quella firma con la chiave pubblica. Anche se qualcuno osserva il traffico di rete, non vede nulla che possa riutilizzare in seguito.

Creare una chiave

La chiave si crea sul Suo computer, non sul server. Su Windows 10 e 11, macOS e Linux ssh-keygen è già incluso. Apra PowerShell o Terminale:

anna@laptop:~$ ssh-keygen -t ed25519 -C "anna@laptop 2026"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/anna/.ssh/id_ed25519):
Enter passphrase for "/home/anna/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/anna/.ssh/id_ed25519
Your public key has been saved in /home/anna/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026

Che cosa succede qui?

  • -t ed25519 sceglie il tipo. Ed25519 è corto, veloce e sicuro, e da OpenSSH 9.5 è anche il tipo predefinito se non ne indica nessuno. Se deve servire un sistema vecchio che non conosce ed25519, usi RSA con almeno 3072 bit: ssh-keygen -t rsa -b 4096. I tipi più vecchi come DSA sono stati rimossi da OpenSSH; non li usi.
  • -C è solo un commento. Vi inserisca qualcosa da cui in seguito capirà a quale dispositivo appartiene la chiave. Aiuta moltissimo quando deve revocare una chiave.
  • La passphrase cifra la chiave privata sul Suo disco. Se il Suo portatile viene rubato, il ladro ha un file cifrato. Senza passphrase ha accesso immediato a tutti i Suoi server.

Ora ha due file:

FileChe cosaCondividere?
~/.ssh/id_ed25519Chiave privataMai
~/.ssh/id_ed25519.pubChiave pubblica, una riga di testoSì, al server

Su Windows si trovano in C:\Users\anna\.ssh\. La chiave pubblica è una riga che inizia con ssh-ed25519:

anna@laptop:~$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHk2... anna@laptop 2026

Mettere la chiave pubblica sul server

Il server cerca le chiavi pubbliche nel file ~/.ssh/authorized_keys dell'utente con cui accede. Ogni riga è una chiave. Ci sono tre modi per portarvi la Sua chiave:

1. Durante l'installazione. La maggior parte dei provider offre, alla creazione o reinstallazione di un VPS, un campo per la Sua chiave pubblica. In WebOké questo campo si chiama "Chiave SSH" nella schermata del VPS; presso altri provider funziona in modo simile. È il metodo migliore: così non serve mai attivare una password.

2. Con ssh-copy-id (macOS e Linux), mentre l'accesso con password funziona ancora:

anna@laptop:~$ ssh-copy-id anna@192.0.2.10
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed
anna@192.0.2.10's password:
Number of key(s) added: 1

3. A mano, per esempio da Windows o tramite la console del Suo provider. Incolli la riga del Suo file .pub in authorized_keys e imposti correttamente i permessi:

anna@web1:~$ mkdir -p ~/.ssh
anna@web1:~$ nano ~/.ssh/authorized_keys
anna@web1:~$ chmod 700 ~/.ssh
anna@web1:~$ chmod 600 ~/.ssh/authorized_keys

Quei permessi non sono un dettaglio. Il server SSH li controlla (l'impostazione StrictModes è attiva per impostazione predefinita): se altri possono scrivere nella Sua cartella .ssh o nella Sua cartella home, ignora le Sue chiavi. Vedrà allora semplicemente di nuovo la richiesta della password, senza un messaggio di errore chiaro. Come leggere i permessi lo imparerà nella lezione 3.1.

Poi faccia una prova in una nuova finestra:

anna@laptop:~$ ssh anna@192.0.2.10
Enter passphrase for key '/home/anna/.ssh/id_ed25519':
anna@web1:~$

La richiesta ora viene dal Suo computer (la passphrase della Sua chiave), non più dal server.

ssh-agent: sbloccare una sola volta

Digitare ogni volta una passphrase è scomodo. Lo ssh-agent conserva in memoria la Sua chiave sbloccata finché resta collegato al Suo computer:

anna@laptop:~$ ssh-add ~/.ssh/id_ed25519
Enter passphrase for /home/anna/.ssh/id_ed25519:
Identity added: /home/anna/.ssh/id_ed25519 (anna@laptop 2026)
anna@laptop:~$ ssh-add -l
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)

Su macOS l'agent si collega al portachiavi, su Windows è il servizio "OpenSSH Authentication Agent" (da attivare una volta in Servizi). Così ha la comodità di non digitare password e al tempo stesso una chiave cifrata sul disco.

Attenzione con l'agent forwarding (ssh -A): con esso il server a cui accede può usare il Suo agent. Chi è root su quel server può quindi proseguire con la Sua chiave. Lo usi solo su server di cui si fida completamente, oppure usi ProxyJump (lezione 2.3).

Una chiave per dispositivo, e sapere dove si trovano

Un errore frequente: copiare un'unica chiave privata su portatile, PC e telefono. Se perde un dispositivo, deve sostituire la chiave ovunque e riconfigurare tutti i dispositivi. Meglio così:

  • crei su ogni dispositivo una chiave propria, con un commento chiaro (-C "anna@telefoon");
  • metta tutte le chiavi pubbliche in authorized_keys, una per riga;
  • se perde un dispositivo, rimuova solo quella riga.

Controlli regolarmente quali chiavi hanno accesso:

anna@web1:~$ ssh-keygen -lf ~/.ssh/authorized_keys
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)
256 SHA256:Zt5oP1yW8eQ3rK6sV0bN9mD2xA4cH7jL1uI5fG8tE3w anna@telefoon (ED25519)

Se c'è una chiave che non riconosce, è un segnale d'allarme (lezione 10.3). Gli intrusi amano inserire la propria chiave in authorized_keys per tornare in seguito.

Una chiave hardware (FIDO2, come una YubiKey) è un'altra possibilità. Con ssh-keygen -t ed25519-sk la parte segreta si trova sulla chiave stessa e deve toccarla a ogni utilizzo. Un file rubato è allora inutile. È un bel passo avanti, ma non necessario per iniziare.

Ha perso la Sua chiave privata?

Se perde la Sua unica chiave privata e l'accesso con password è disattivato, non riesce più a entrare tramite SSH. Per questo:

  • metta sempre almeno due chiavi sul server (per esempio portatile e PC);
  • sappia come funziona la console del Suo provider (lezione 1.2). Lì accede come se collegasse una tastiera al server, e funziona anche senza SSH. In WebOké si chiama Console nella schermata del VPS; altri provider la chiamano console VNC, console web o console di emergenza.

Su AlmaLinux e Rocky Linux

Tutto ciò che è in questa lezione funziona allo stesso modo. Una trappola in più: con SELinux attivo, ~/.ssh deve avere l'etichetta di sicurezza corretta. Se ha creato o copiato la cartella a mano e la Sua chiave viene ignorata, restorecon -Rv ~/.ssh ripristina la situazione.

Riepilogo

  • Una coppia di chiavi è composta da una chiave privata (rimane con Lei) e una chiave pubblica (va al server, in ~/.ssh/authorized_keys).
  • Crei le chiavi con ssh-keygen -t ed25519 sul Suo computer, con una passphrase; usi ssh-agent per comodità.
  • I permessi contano: ~/.ssh a 700 e authorized_keys a 600, altrimenti il server ignora la Sua chiave.
  • Una chiave per dispositivo, con un commento chiaro, così può revocarne una sola.
  • Preveda una seconda chiave e conosca la console del Suo provider come accesso di emergenza.

Quiz

1. Quale file può consegnare al Suo provider o a un collega per ottenere l'accesso a un server?



2. Ha inserito la Sua chiave in authorized_keys, ma il server chiede ancora una password. Qual è una causa frequente?



3. Perché mette una passphrase sulla Sua chiave privata?



4. Le hanno rubato il portatile. Sul server ci sono tre chiavi: portatile, PC e telefono, ciascuna con un proprio commento. Che cosa fa?



5. Qual è il rischio di ssh -A (agent forwarding) verso un server di cui non si fida?



Esercizio

Esercizio O2.1: Creare e usare una chiave. Crei sul Suo computer una chiave ed25519 con una passphrase e un commento chiaro, la metta sul Suo server (tramite il campo del Suo provider, ssh-copy-id o a mano), controlli i permessi e acceda con la chiave in una nuova finestra. Poi inserisca l'impronta digitale della Sua chiave (da ssh-keygen -lf ~/.ssh/id_ed25519.pub) e risponda alle domande su dove si trova la Sua chiave privata e che cosa fa se la perde. Il programma controlla solo che l'impronta digitale abbia il formato corretto; il resto lo fa Lei.

Esercizio O2.1: Creare e usare una chiave

Questo esercizio lo svolge da sé; nessuno lo verifica. Spunti ciò che ha fatto e segni l'esercizio come completato.




Le Sue spunte e note restano solo in questo browser; non le inviamo da nessuna parte. Se ha effettuato l'accesso, conserviamo in I miei corsi solo il fatto che ha svolto l'esercizio.

Per approfondire

I passaggi descritti in questi articoli valgono per la schermata del VPS e i pannelli di WebOké; presso altri provider funziona in modo simile.

Un momento…

Configuri i suoi domini

Per ogni dominio imposti i nameserver, il collegamento al suo hosting e chi ne diventa l'intestatario.

Caricamento dei suoi domini…