1,648 22/03/2026 07/04/2026 3 min

Se gestisci un server Linux, conoscere e risolvere gli errori di accesso SSH è fondamentale. Uno dei problemi più comuni è il messaggio di errore ‘Permission Denied’, che può derivare da una cattiva configurazione dei permessi dei file o da un attacco brutale. In questo articolo, esploreremo come affrontare questo problema specifico e implementare misure di sicurezza per migliorare la resilienza del tuo server.

Prerequisiti

  • Un server Linux con l’accesso SSH abilitato.
  • Privilegi di root o di sudo per apportare modifiche ai permessi.
  • Fail2Ban installato per la protezione contro gli accessi non autorizzati.

Step 1: Verifica dei Permessi delle Chiavi SSH

Il primo passo per risolvere il problema di accesso negato è controllare i permessi della chiave privata SSH sul client che stai utilizzando per accedere al server.

chmod 600 ~/.ssh/id_rsa

# Output: Nessun output, il comando verrà eseguito correttamente senza messaggi. Perché funziona: Questo comando limita i permessi della chiave privata a sola lettura per l'utente, requisito necessario per SSH.

Step 2: Controllo dei Permessi della Directory .ssh

La directory .ssh deve avere permessi corretti al fine di garantire un accesso sicuro.

chmod 700 ~/.ssh

# Output: Nessun output, comando eseguito correttamente.

Perché funziona: Questo comando assicura che solo l'utente possa accedere alla directory .ssh.

Step 3: Verifica e Correzione dei Permessi sul Server

Accedi direttamente al server e verifica i permessi dei file di configurazione di SSH.

ls -ld /etc/ssh
chmod 755 /etc/ssh

# Output: Nessun output, output normale per il comando ls è la lista dei permessi.

Perché funziona: Assicurarsi che la directory SSH abbia i permessi corretti è essenziale per il funzionamento della configurazione di SSH.

Step 4: Configurazione di Fail2Ban

Fail2Ban è uno strumento che protegge il server da tentativi di accesso non autorizzati. Configureremo Fail2Ban per monitorare gli accessi SSH e bannare gli IP sospetti.

sudo nano /etc/fail2ban/jail.local

All'interno del file, aggiungi la seguente configurazione:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 600

# Output: Nessun output, il comando nano si aprirà per l'editing.

Perché funziona: Configurando Fail2Ban, il server sarà in grado di bannare gli IP dopo un numero configurabile di tentativi di accesso falliti.

Verifica Finale

Per assicurarti che tutto funzioni come previsto, prova ad accedere nuovamente al tuo server via SSH. Se i permessi e la configurazione sono corretti, non dovresti più ricevere l'errore ‘Permission Denied’.

Troubleshooting

Se continuassi a riscontrare l'errore, ecco alcune soluzioni a problemi comuni:

  1. Errore: Permission denied (publickey)

    Cause: Chiave privata non riconosciuta o permessi errati.

    Fix: Esegui chmod 600 ~/.ssh/id_rsa e chmod 700 ~/.ssh.

  2. Errore: Connection refused

    Cause: SSH non in esecuzione o porta sbagliata.

    Fix: Verifica che il servizio SSH sia attivo con sudo systemctl status ssh.

  3. Errore: Too many authentication failures

    Cause: Troppi tentativi di autenticazione.

    Fix: Utilizza l'opzione -o IdentitiesOnly=yes durante la connessione.

Conclusione

Risolvendoti l'errore 'Permission Denied' su SSH e implementando Fail2Ban, stai migliorando significativamente la sicurezza del tuo server. Come prossimo passo, considera di eseguire regolarmente audit di sicurezza per mantenere il tuo ambiente protetto.