Server Dedicati & VPS10 dicembre 2025 200 visualizzazioni

Configurer una Chiave SSH su VPS Linux

Configurer una Chiave SSH su VPS Linux

Introduzione alle Chiavi SSH

Le chiavi SSH (Secure Shell) offrono un metodo di autenticazione molto più sicuro rispetto alle password tradizionali. Invece di digitare una password ad ogni accesso, si utilizza una coppia di chiavi crittografiche:

  • Chiave privata : Rimane sul tuo computer locale (non condividerla mai)
  • Chiave pubblica : Installata sul server VPS

Quando ti connetti, il server verifica che la tua chiave privata corrisponda alla chiave pubblica registrata. Se la corrispondenza è convalidata, sei autenticato istantaneamente.

Vantaggi delle chiavi SSH

Aspetto Password Chiave SSH
Sicurezza Vulnerabile ad attacchi brute-force Quasi impossibile da decifrare
Comodità Inserimento manuale ad ogni connessione Connessione automatica
Condivisione Rischio se divulgata Chiave pubblica condivisibile senza rischio
Lunghezza Generalmente 8-20 caratteri 2048-4096 bit di crittografia
Automazione Difficile da scriptare Ideale per script

🖥️ Metodo 1 : Generare una Chiave SSH su Windows con PuTTY

Passo 1 : Scaricare PuTTY e PuTTYgen

PuTTY è il client SSH più popolare per Windows. PuTTYgen è l'utilità di generazione di chiavi inclusa.

  1. Visita il sito ufficiale : https://www.putty.org/
  2. Scarica il pacchetto di installazione MSI (64-bit o 32-bit a seconda del tuo sistema)
  3. Installa PuTTY - PuTTYgen sarà automaticamente incluso

Puoi anche scaricare solo puttygen.exe se hai già PuTTY.

File PuTTYgen scaricato Il file puttygen.exe scaricato

Passo 2 : Avviare PuTTYgen

  1. Apri PuTTYgen tramite :

    • Menu StartTutti i programmiPuTTYPuTTYgen
    • Oppure fai doppio clic su puttygen.exe
  2. L'interfaccia di generazione delle chiavi appare :

Interfaccia principale di PuTTYgen Interfaccia principale di PuTTYgen

Passo 3 : Configurare le impostazioni

Prima di generare la chiave, controlla le impostazioni in fondo alla finestra :

Impostazione Valore raccomandato Descrizione
Tipo di chiave RSA o EdDSA (Ed25519) Algoritmo di crittografia
Numero di bit 4096 (RSA) o 256 (Ed25519) Lunghezza della chiave

💡 Raccomandazione : Per la massima sicurezza, scegli RSA 4096 bit o EdDSA (Ed25519) che è più moderno e performante.

Passo 4 : Generare la coppia di chiavi

  1. Clicca sul pulsante Generate
  2. Importante : Muovi il mouse in modo casuale nell'area vuota per generare entropia (random cryptografico)

Generazione della chiave - muovere il mouse Muovi il mouse per generare casualità

  1. Attendi che la barra di avanzamento si riempia

Passo 5 : Configurare e salvare le chiavi

Una volta generata la chiave, vedrai questo schermo :

Chiave SSH generata in PuTTYgen Chiave SSH generata con successo

Aggiungere una passphrase (raccomandato)

La passphrase aggiunge un ulteriore livello di sicurezza. Anche se qualcuno ottiene la tua chiave privata, non potrà utilizzarla senza la passphrase.

Configurazione della passphrase Inserimento della passphrase

  1. In Key passphrase, inserisci una frase segreta
  2. Conferma in Confirm passphrase

Salvare la chiave privata

  1. Clicca su Save private key
  2. Scegli una posizione sicura
  3. Dai un nome al file (es: ma_cle_vps.ppk)

Salvataggio della chiave privata Pulsante Save private key

Registrazione del file PPK Registrazione del file .ppk

Salvare la chiave pubblica

  1. Clicca su Save public key
  2. Dai un nome al file (es: ma_cle_vps.pub)

Salvataggio della chiave pubblica Registrazione della chiave pubblica

Copiare la chiave pubblica nel formato OpenSSH

Importante : Per i server Linux, devi copiare la chiave nel formato OpenSSH :

  1. Seleziona tutto il testo nell'area "Public key for pasting into OpenSSH authorized_keys file"
  2. Copia (Ctrl+C)
  3. Mettila da parte per il passo successivo

Il formato appare come :

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDx... rsa-key-20241210

Passo 6 : Configurare PuTTY per utilizzare la chiave

  1. Apri PuTTY
  2. Nel menu a sinistra, naviga verso : ConnectionSSHAuthCredentials

Configurazione delle credenziali in PuTTY Sezione Credentials in PuTTY

  1. Clicca su Browse accanto a "Private key file for authentication"

Pulsante Browse per la chiave privata Selezione della chiave privata

  1. Seleziona il tuo file .ppk

Selezione del file PPK File .ppk selezionato

  1. Torna a Session, inserisci l'IP del tuo VPS e salva la sessione

🐧 Metodo 2 : Generare una Chiave SSH su Linux/macOS

Passo 1 : Aprire il Terminale

  • Linux : Ctrl+Alt+T o cerca "Terminale"
  • macOS : Applicazioni → Utility → Terminale

Passo 2 : Generare la coppia di chiavi

Opzione A : Chiave RSA 4096 bit (compatibile universalmente)

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Opzione B : Chiave Ed25519 (raccomandata, più moderna)

ssh-keygen -t ed25519 -C "[email protected]"

Passo 3 : Seguire le istruzioni

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/utente/.ssh/id_ed25519):
  1. Posizione : Premi Invio per accettare la posizione predefinita (~/.ssh/id_ed25519)
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
  1. Passphrase : Inserisci una frase segreta (raccomandato) o premi Invio per nessuna

Passo 4 : Verificare la creazione

ls -la ~/.ssh/

Dovresti vedere :

  • id_ed25519 (o id_rsa) - Chiave privata
  • id_ed25519.pub (o id_rsa.pub) - Chiave pubblica

Passo 5 : Visualizzare la chiave pubblica

cat ~/.ssh/id_ed25519.pub

Risultato :

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... [email protected]

Copia questa riga completa per installarla sul server.


🚀 Installare la Chiave Pubblica sul VPS

Metodo 1 : Con ssh-copy-id (Linux/macOS - Raccomandato)

Il comando ssh-copy-id automatizza l'installazione :

ssh-copy-id -i ~/.ssh/id_ed25519.pub utente@IP_DEL_VPS

Esempio :

ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]

Dovrai inserire la tua password un'ultima volta. Poi, la chiave sarà installata automaticamente.

Metodo 2 : Installazione manuale

Se ssh-copy-id non è disponibile :

Passo 1 : Connettersi al VPS con password

ssh root@IP_DEL_VPS

Passo 2 : Creare la cartella .ssh (se necessario)

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

Passo 3 : Creare/modificare il file authorized_keys

nano ~/.ssh/authorized_keys

Passo 4 : Incollare la chiave pubblica

Incolla la chiave pubblica copiata in precedenza (una sola riga).

Per PuTTY, è il contenuto di "Public key for pasting into OpenSSH authorized_keys file".

Passo 5 : Salvare e impostare i permessi

chmod 600 ~/.ssh/authorized_keys

Passo 6 : Testare la connessione

Disconnettiti e riconnettiti :

exit
ssh root@IP_DEL_VPS

Se tutto funziona, ti connetterai senza password (o con la tua passphrase se ne hai definita una).

Metodo 3 : In un solo comando (dal tuo PC locale)

cat ~/.ssh/id_ed25519.pub | ssh root@IP_DEL_VPS "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

🔒 Sicurezza del Server SSH

Una volta configurate le chiavi SSH, rafforza la sicurezza disabilitando l'autenticazione tramite password.

Passo 1 : Modificare la configurazione SSH

sudo nano /etc/ssh/sshd_config

Passo 2 : Modificare le impostazioni

Cerca e modifica queste righe :

# Disabilitare l'autenticazione tramite password
PasswordAuthentication no

# Disabilitare le password vuote
PermitEmptyPasswords no

# Abilitare l'autenticazione tramite chiave pubblica
PubkeyAuthentication yes

# Disabilitare l'autenticazione challenge-response
ChallengeResponseAuthentication no

# Opzionale : Disabilitare il login root (crea prima un utente sudo)
# PermitRootLogin no

Passo 3 : Riavviare il servizio SSH

sudo systemctl restart sshd

⚠️ Attenzione : Tieni aperta una sessione SSH durante i test! Se la configurazione è errata, potresti perdere l'accesso.


🛠️ Gestione delle Chiavi SSH

Aggiungere più chiavi

Puoi autorizzare più chiavi (più computer, più utenti) :

nano ~/.ssh/authorized_keys

Aggiungi una chiave per riga.

Rimuovere una chiave

Modifica authorized_keys e rimuovi la riga corrispondente alla chiave.

Cambiare la passphrase di una chiave esistente

ssh-keygen -p -f ~/.ssh/id_ed25519

Visualizzare l'impronta (fingerprint) di una chiave

ssh-keygen -lf ~/.ssh/id_ed25519.pub

🔄 Convertire i Formati delle Chiavi

PPK verso OpenSSH (PuTTY → Linux)

In PuTTYgen :

  1. Carica il tuo file .ppk con Load
  2. Vai su ConversionsExport OpenSSH key
  3. Salva il file

OpenSSH verso PPK (Linux → PuTTY)

In PuTTYgen :

  1. Vai su ConversionsImport key
  2. Seleziona la tua chiave privata OpenSSH (id_rsa o id_ed25519)
  3. Clicca su Save private key

🔧 Risoluzione dei Problemi

"Permission denied (publickey)"

Cause possibili :

  • Chiave pubblica non installata sul server
  • Permessi errati su .ssh o authorized_keys
  • Chiave privata errata utilizzata

Soluzioni :

# Controllare i permessi (sul server)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

# Controllare che la chiave sia presente in authorized_keys
cat ~/.ssh/authorized_keys

"Connection refused"

Cause possibili :

  • Servizio SSH non avviato
  • Firewall che blocca la porta 22

Soluzioni :

# Controllare lo stato SSH
sudo systemctl status sshd

# Riavviare se necessario
sudo systemctl start sshd

# Controllare il firewall
sudo ufw status
sudo ufw allow 22

"Host key verification failed"

Il server è cambiato (reinstallazione, nuovo IP). Rimuovi la vecchia voce :

ssh-keygen -R IP_DEL_VPS

La passphrase viene richiesta ad ogni connessione

Utilizza ssh-agent per memorizzare la passphrase :

# Avviare l'agente
eval "$(ssh-agent -s)"

# Aggiungere la chiave
ssh-add ~/.ssh/id_ed25519

📋 Riepilogo dei Comandi

Azione Comando
Generare chiave RSA 4096 ssh-keygen -t rsa -b 4096
Generare chiave Ed25519 ssh-keygen -t ed25519
Copiare chiave sul server ssh-copy-id -i ~/.ssh/id_ed25519.pub user@IP
Visualizzare chiave pubblica cat ~/.ssh/id_ed25519.pub
Testare connessione verbose ssh -v user@IP
Cambiare passphrase ssh-keygen -p -f ~/.ssh/id_ed25519
Vedere fingerprint ssh-keygen -lf ~/.ssh/id_ed25519.pub

📁 Struttura dei File SSH

~/.ssh/
├── authorized_keys      # Chiavi pubbliche autorizzate (sul server)
├── id_ed25519          # Chiave privata Ed25519 (sul client)
├── id_ed25519.pub      # Chiave pubblica Ed25519 (sul client)
├── id_rsa              # Chiave privata RSA (sul client)
├── id_rsa.pub          # Chiave pubblica RSA (sul client)
├── known_hosts         # Impronte dei server conosciuti
└── config              # Configurazione personalizzata (opzionale)

Permessi richiesti

File/Cartella Permesso Comando
~/.ssh/ 700 chmod 700 ~/.ssh
authorized_keys 600 chmod 600 ~/.ssh/authorized_keys
Chiave privata 600 chmod 600 ~/.ssh/id_ed25519
Chiave pubblica 644 chmod 644 ~/.ssh/id_ed25519.pub

💡 Buone Pratiche

  1. Utilizza Ed25519 per le nuove chiavi (più sicuro e performante rispetto a RSA)

  2. Definisci sempre una passphrase sulle tue chiavi private

  3. Non condividere mai la tua chiave privata - solo la chiave pubblica deve essere copiata

  4. Salva le tue chiavi in un luogo sicuro (gestore di password, cassaforte)

  5. Utilizza chiavi diverse per usi diversi (lavoro, personale, server critici)

  6. Disabilita l'autenticazione tramite password una volta configurate le chiavi

  7. Audita regolarmente il file authorized_keys per rimuovere le chiavi non utilizzate

  8. Cambia le tue chiavi periodicamente (ogni 1-2 anni minimo)


❓ FAQ

Qual è la differenza tra RSA ed Ed25519 ?

Aspetto RSA Ed25519
Sicurezza Eccellente (4096 bit) Eccellente (256 bit)
Performance Più lento Più veloce
Dimensione della chiave Grande Piccola
Compatibilità Universale Molto buona (post-2014)

Raccomandazione : Ed25519 per i nuovi deployment, RSA per la compatibilità con sistemi più vecchi.

Posso utilizzare la stessa chiave per più server ?

Sì, puoi installare la stessa chiave pubblica su più server. Tuttavia, per una sicurezza ottimale, utilizza chiavi diverse per ambienti critici.

Come aggiungere un commento alla mia chiave ?

Il parametro -C consente di aggiungere un commento :

ssh-keygen -t ed25519 -C "laptop-lavoro-2024"

Le chiavi SSH scadono ?

No, le chiavi SSH non hanno una data di scadenza integrata. Spetta a te ruotarle regolarmente.