Rete e Connettività
Permission denied (publickey) – Linux SSH_PUBLICKEY_DENIED
L'errore SSH Permission denied (publickey) indica che il server ha rifiutato l'autenticazione con chiave pubblica per l'utente o la chiave presentata. Le cause frequenti sono utente o host errati, chiave privata non selezionata, chiave pubblica assente in authorized_keys, permessi troppo aperti o configurazione sshd non coerente. La diagnosi parte da ssh -v e dal controllo della coppia di chiavi sul client e sul server.
Cosa significa questo errore?
L'errore SSH Permission denied (publickey) indica che il server ha rifiutato l'autenticazione con chiave pubblica per l'utente o la chiave presentata. Le cause frequenti sono utente o host errati, chiave privata non selezionata, chiave pubblica assente in authorized_keys, permessi troppo aperti o configurazione sshd non coerente. La diagnosi parte da ssh -v e dal controllo della coppia di chiavi sul client e sul server.
Messaggio originale
Permission denied (publickey)Contesto e parole chiave
Alias
- SSH key rejected
- ssh publickey authentication failed
Messaggi alternativi
- Autenticazione con chiave pubblica rifiutata
- Chiave SSH non accettata dal server
Prodotti
- OpenSSH client / OpenSSH server
Piattaforme
- Debian
- Fedora
- RHEL / AlmaLinux
- Ubuntu
Parole chiave
- authorized_keys permissions
- linux ssh key rejected
- ssh permission denied publickey
Cause possibili
Chiave pubblica non presente in authorized_keys
Il server non trova la chiave pubblica corrispondente alla privata presentata dal client per quell'utente.
molto comunePermessi o proprietario errati nella directory SSH
sshd può ignorare authorized_keys quando .ssh o il file sono scrivibili da altri utenti o appartengono all'utente sbagliato.
comuneDiagnosi
Chiave e utente effettivamente usati dal client
Eseguire SSH in modalità verbose e verificare host, username e chiavi offerte.
Come leggere il risultato. Il log mostra se la chiave viene offerta e in quale fase il server la rifiuta.
ssh -vvv -i ~/.ssh/id_ed25519 user@serverauthorized_keys e permessi lato server
Verificare che la chiave pubblica sia nella home dell'utente corretto e che i permessi siano restrittivi.
Come leggere il risultato. Directory e file devono essere accessibili all'utente senza risultare scrivibili da altri.
ls -ld ~/.ssh && ls -l ~/.ssh/authorized_keysRisoluzione
Installazione della chiave pubblica corretta
Aggiungere la chiave pubblica corrispondente alla privata usata dal client nell'account remoto corretto.
- Controllare fingerprint della chiave privata e pubblica.
- Verificare username e host.
- Aggiungere la chiave pubblica a ~/.ssh/authorized_keys.
- Riprovare con ssh -i esplicito.
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@serverCorrezione di proprietario e permessi SSH
Rendere la directory e authorized_keys conformi ai controlli di sicurezza di sshd.
- Accedere al server con un metodo amministrativo disponibile.
- Impostare il proprietario sulla home SSH.
- Limitare i permessi della directory e del file.
- Controllare i log di sshd e riprovare.
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keysDomande frequenti
Perché la chiave esiste ma SSH continua a rifiutarla?
La chiave deve corrispondere all'utente e alla privata usata, trovarsi nel percorso authorized_keys corretto e rispettare i permessi che sshd considera sicuri.
Approfondimenti
- OpenSSH Manual Pages documentazione_ufficiale
- OpenSSH server - Ubuntu Server documentation documentazione_ufficiale