Sicurezza SSH · 4 min read · Nov 14, 2025

Migliori pratiche di sicurezza OpenSSH

SSH (Secure Shell) è un protocollo di rete crittografico per avviare sessioni shell basate su testo su macchine remote in modo sicuro.

OpenSSH è il client e server SSH standard utilizzato dalla maggior parte delle distribuzioni Linux. È uno strumento di connettività su cui la maggior parte degli amministratori fa affidamento per lavorare sui propri server Linux e *BSD. OpenSSH cripta tutto il traffico (compresi le password) per eliminare efficacemente l’intercettazione, l’hijacking della connessione e altri attacchi. In altre parole, “OpenSSH garantisce che la connessione al tuo server sia sicura”. Vedi l’articolo di Wikipedia per un excursus dettagliato su SSH.

Questo tutorial copre le migliori pratiche per configurare in modo sicuro il tuo server SSH.

Sicurezza OpenSSH

Questi sono i sei compiti più importanti per mettere in sicurezza la configurazione del tuo server SSH:

  1. Usa una password forte.
  2. Cambia la porta predefinita SSH.
  3. Usa sempre la versione del protocollo 2.
  4. Disabilita il login come root.
  5. Limita l’accesso degli utenti.
  6. Usa l’autenticazione basata su chiave.

Usa una password forte

Una password è una parola o una stringa di caratteri utilizzata per l’autenticazione dell’utente per dimostrare l’identità o l’approvazione dell’accesso per ottenere l’accesso a una risorsa. Tienila segreta da coloro che non sono autorizzati ad accedere al server. Usa una password complessa e lunga, dovrebbe essere facile da ricordare e unica per te, ma non facile da indovinare per gli altri. Non usare admin123 o admin ecc. che sono facili da indovinare e non usare compleanni, il nome di tua moglie ecc. Una buona password dovrebbe contenere anche caratteri speciali come ‘.!;/‘ (non solo i caratteri a-c e 0-9). Usa caratteri maiuscoli e minuscoli nella password.

Cambia la porta predefinita SSH

La porta predefinita del servizio SSH è 22, dovresti cambiarla per rendere meno ovvio che il tuo server sta eseguendo un servizio SSH. Il file di configurazione SSH si trova nella directory /etc/sshd/, devi modificare il file di configurazione /etc/ssh/sshd_config.

nano /etc/ssh/sshd_config

Cerca la riga “Port”:

Port 22

e cambiala con il tuo numero di porta preferito, esempio: 1337

Port 1337

Porta SSH predefinita

Si prega di scegliere una porta che non è ancora in uso sul tuo server. Puoi ottenere un elenco delle porte attualmente in uso con il comando:

netstat -ntap

Questo comando restituisce un elenco piuttosto lungo che mostra tutte le porte e le connessioni aperte. Se desideri solo controllare se la tua porta desiderata è disponibile, usa invece questo comando:

netstat -ntap | grep 4422

In questo esempio, controllerò se la porta 4422 è libera. Se il comando non restituisce un risultato, allora la porta è disponibile e può essere utilizzata per SSH.

Usa sempre il protocollo 2

SSH ha due versioni del protocollo, il vecchio protocollo 1 che è insicuro e il nuovo protocollo 2. Quindi usa sempre il protocollo 2 per il tuo server ssh, è più sicuro del protocollo 1. Maggiori informazioni qui.

Protocollo 2 SSH

Disabilita il login come root

Dovresti disabilitare il login diretto per l’utente root perché ci sono molti attacchi di forza bruta contro il nome dell’utente superuser root. IMPORTANTE: testa il login SSH con il tuo utente alternativo non-root che intendi utilizzare per i login SSH prima di disabilitare l’account root.

PermitRootLogin no

Disabilita login come root

Dopo aver impostato “PermitRootLogin” su “no”, non puoi più accedere con l’account root, anche se usi la password corretta per l’utente root.

Limita l’utente

Dovresti aggiungere un nuovo utente per il login al tuo server. Supponi di aver creato gli utenti ruiko e mikoto per accedere al tuo server, quindi puoi aggiungere la nuova riga:

AllowUsers ruiko mikoto

Limita utente

in /etc/ssh/sshd_config per limitare l’accesso SSH a questi utenti.

Usa l’autenticazione basata su chiave

Ti consiglio di utilizzare questa opzione perché è molto facile da configurare e più sicura rispetto all’autenticazione basata su password. Prima devi creare una coppia di chiavi pubblica-privata sul tuo computer locale (desktop), io uso Linux per crearla.

Puoi creare la coppia di chiavi pubblica/privata con questo comando:

ssh-keygen -t rsa -b 4096

Creerà 2 file situati nella directory ~/.ssh/, id_rsa come chiave privata e id_rsa.pub come chiave pubblica. Se ti viene chiesto di inserire una password, puoi lasciarla vuota o digitare la tua password. È consigliato utilizzare una password per proteggere la tua chiave.

Genera chiave SSH

Ora carica la chiave pubblica id_rsa.pub sul tuo server con il comando ssh-copy-id.

ssh-copy-id -i ~/.ssh/id_rsa.pub user@serverip

Scriverà automaticamente la tua chiave pubblica nel file ~/.ssh/authorized_keys/ nel tuo server.

Ora torna al tuo server e modifica di nuovo il file di configurazione ssh.

nano /etc/ssh/sshd_config

Decommenta questa riga:

AuthorizedKeysFile     %h/.ssh/authorized_keys

Aggiungi chiave pubblica

e infine riavvia il tuo server ssh:

systemctl restart sshd

Ora prova a connetterti al tuo server:

ssh -p '4422' 'user@serverIP'

Conclusione

OpenSSH è lo standard per l’accesso remoto sicuro ai server *Unix-like, sostituendo il protocollo telnet non crittografato. SSH (e il suo sottoprotocollo di trasferimento file SCP) garantisce che la connessione dal tuo computer locale al server sia crittografata e sicura. L’installazione di base di OpenSSH è già piuttosto sicura, ma possiamo migliorarla seguendo la guida sopra.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.