Come risolvere l'errore Autorizzazione negata (Publickey)

Pubblicato: 2024-01-10
Sommario
  • Perchè importa
  • Nozioni di base sulle connessioni sicure del computer
  • Chiave della serratura: chiavi pubbliche
  • Perché si verifica questo errore?
  • Come sistemarlo
  • Suggerimenti extra se ancora non funziona
  • Mantenere il funzionamento senza intoppi
  • Domande frequenti
  • Altre risorse
  • Avvolgendo

Ti è mai capitato di incontrare il messaggio "Errore: autorizzazione negata (Publickey)" mentre utilizzi il tuo computer? Questo è un errore comune che di solito viene visualizzato durante le connessioni SSH, che è un modo in cui i computer comunicano tra loro in modo sicuro.

Consideralo come un tentativo di utilizzare una chiave che non si adatta alla serratura. Quando vedi questo errore, significa che il tuo computer ha problemi a stabilire un collegamento sicuro con un altro computer, perché qualcosa nelle impostazioni di sicurezza non corrisponde.

Come risolvere l'errore: autorizzazione negata (Publickey)

Perchè importa

Le connessioni sicure, come quelle realizzate con SSH, sono come avere una conversazione privata in una stanza rumorosa. Non vorresti che tutti sentissero, soprattutto se condividi segreti o informazioni personali, giusto? Ecco perché correggere questo errore è così importante.

Mantiene le conversazioni del tuo computer private e sicure, garantendo che le informazioni sensibili come le password rimangano riservate.

Nozioni di base sulle connessioni sicure del computer

Immergiamoci in cos'è SSH.

SSH sta per Secure Shell ed è un modo speciale con cui i computer comunicano tra loro su Internet in modo super sicuro. Immagina SSH come uno speciale tunnel privato che collega due computer.

Solo questi due computer possono scambiarsi messaggi attraverso questo tunnel, mantenendo la conversazione al sicuro da eventuali intercettazioni.

Chiave della serratura: chiavi pubbliche

Per rendere sicuro questo tunnel, SSH utilizza qualcosa chiamato "autenticazione a chiave pubblica". È come avere una password speciale, ma sotto forma di chiave. Il tuo computer ha una chiave univoca (chiamata chiave pubblica) che condivide con l'altro computer.

Consideratela come una stretta di mano segreta. Se l'handshake non corrisponde, la connessione non avverrà e in quel momento verrà visualizzato il messaggio "Errore: autorizzazione negata (Publickey)" .

Perché si verifica questo errore?

Quindi, perché vedi questo errore? Ci sono un paio di motivi comuni:

  1. Problemi chiave: a volte l'errore si verifica perché c'è qualcosa di sbagliato nell'impostazione della chiave speciale. Forse la chiave sul tuo computer non corrisponde a quella del computer con cui stai tentando di parlare. È come cercare di inserire un piolo quadrato in un foro rotondo: semplicemente non funzionerà.
  2. Impostazioni errate: altre volte, le impostazioni o le autorizzazioni sul tuo computer potrebbero essere configurate in modo errato. Ciò può impedire al computer di utilizzare la chiave correttamente, ad esempio avere la chiave giusta ma non essere in grado di girarla nella serratura.

Come sistemarlo

Ora che hai capito perché si verifica questo errore, parliamo di come risolverlo. Ecco alcuni passaggi che puoi seguire:

Verifica le autorizzazioni della chiave SSH:

Imposta le autorizzazioni corrette per la tua chiave privata.

 chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/autorized_keys

Assicurati che la tua chiave pubblica sia in ~/.ssh/authorized_keys sul server. In caso contrario, aggiungilo utilizzando:

cat ~/.ssh/id_rsa.pub | ssh utente@nomehost 'cat >> ~/.ssh/authorized_keys'.

Debug della connessione SSH

Esegui ssh -vvv user@hostname per abilitare la modalità dettagliata, fornendo una diagnostica dettagliata della connessione.

Verificare sul server le configurazioni corrette, in particolare per PasswordAuthentication e PubkeyAuthentication .

cat ecc/ssh/sshd_config

Soluzioni aggiuntive:

Verifica di utilizzare il nome utente corretto per la connessione SSH.

Riavviare il servizio SSH per aggiornare le connessioni.

 sudo systemctl restart sshd

Verificare la porta di connessione SSH nel file di configurazione SSH. Il valore predefinito è solitamente 22 ma potrebbe essere stato modificato.

controlla la porta ssh

Controlla i log del server, come /var/log/auth.log o /var/log/secure, per i dettagli dell'errore.

Suggerimenti extra se ancora non funziona

Se hai provato questi passaggi e continui a visualizzare l'errore, ecco un altro paio di soluzioni da provare:

  1. Modalità conversazione: attiva la modalità dettagliata in SSH. È come chiedere al tuo computer di darti più indizi su cosa sta andando storto. Puoi farlo aggiungendo -vvv al tuo comando SSH, come ssh -vvv [email protected] . Ti fornirà molti più dettagli su cosa succede quando provi a connetterti.
  2. Problemi con l'agente: a volte, il problema potrebbe riguardare l'agente SSH, uno strumento che contiene le tue chiavi. Se l'agente non funziona correttamente, le tue chiavi non verranno presentate correttamente. A volte il riavvio dell'agente SSH può essere d'aiuto.

Mantenere il funzionamento senza intoppi

Per evitare di incorrere in questo errore in futuro, ecco alcuni suggerimenti per far sì che tutto funzioni bene:

  1. Cura delle chiavi: tratta le tue chiavi SSH come se fossero le chiavi di casa. Tienili al sicuro e non condividerli con altri. Controlla regolarmente se funzionano ancora come dovrebbero.
  2. Controlli regolari: proprio come controlleresti regolarmente la tua auto o la tua casa per eventuali problemi, fai lo stesso con le impostazioni SSH. Assicurati che le impostazioni non siano cambiate inaspettatamente e che le tue chiavi siano aggiornate.

Domande frequenti

Come posso impostare l'autenticazione con chiave pubblica in SSH?

Per impostare l'autenticazione con chiave pubblica in SSH, genera prima una coppia di chiavi SSH sul tuo computer locale utilizzando un comando come ssh-keygen . Questo crea una chiave privata ( id_rsa ) e una chiave pubblica ( id_rsa.pub ). Successivamente, copia la chiave pubblica nel file ~/.ssh/authorized_keys del server utilizzando ssh-copy-id user@server_ip . Assicurati che il file authorized_keys disponga delle autorizzazioni corrette (solitamente 600) per motivi di sicurezza. Questa configurazione consente a SSH di utilizzare l'autenticazione basata su chiave invece delle password.

Quali sono le cause più comuni dell'errore "Autorizzazione SSH negata (Publickey)"?

  • Le cause comuni di questo errore includono:
  • Autorizzazioni errate sui file chiave SSH. La chiave privata dovrebbe essere leggibile solo dall'utente (600).
  • Configurazione errata nei file di configurazione SSH ( sshd_config o ssh_config ).
  • Software client o server SSH obsoleto che potrebbe non supportare gli attuali protocolli di autenticazione.
  • Firewall o software di sicurezza che bloccano porte o connessioni SSH.
  • Configurazione errata della chiave pubblica nel file authorized_keys o utilizzo di un nome utente errato per la connessione SSH.

Come posso verificare se la mia chiave SSH è stata aggiunta correttamente al server?

Per verificare, accedi al server e controlla il file ~/.ssh/authorized_keys . La tua chiave pubblica dovrebbe essere elencata lì. Puoi anche testare la connessione tentando di accedere tramite SSH al server. Se non richiede una password, la chiave è stata aggiunta correttamente.

Perché è importante limitare le autorizzazioni sui file di chiavi SSH?

Limitare le autorizzazioni sui file chiave SSH è fondamentale per la sicurezza. Se altri possono leggere la tua chiave privata, possono potenzialmente accedere ai tuoi server. Mantenere la chiave privata sicura garantisce che solo tu possa utilizzarla per l'autenticazione.

Le modifiche alla configurazione SSH del server possono causare errori di "autorizzazione negata"?

Sì, le modifiche nel file di configurazione SSH del server ( etc/ssh/sshd_config ) possono portare a tali errori. Ad esempio, se PubkeyAuthentication è impostato su no , il server non accetterà l'autenticazione con chiave pubblica, generando un errore di autorizzazione negata.

Cosa devo fare se il mio client SSH non è aggiornato?

Se il tuo client SSH è obsoleto, potrebbe non supportare i metodi di autenticazione più recenti o potrebbe presentare vulnerabilità di sicurezza senza patch. È importante aggiornare il client SSH all'ultima versione disponibile per il tuo sistema operativo.

In che modo i firewall influiscono sulle connessioni SSH?

I firewall possono bloccare le connessioni SSH se sono configurati per limitare l'accesso alla porta SSH (l'impostazione predefinita è 22). Assicurati che il tuo firewall consenta il traffico sulla porta utilizzata per SSH per evitare problemi di connessione.

Altre risorse

Come installare Sendmail in Linux 2024 (passo dopo passo)

Comandi Linux di base per DevOps (manuale)

Avvolgendo

In questo articolo, abbiamo esplorato le cause dell'"Errore: autorizzazione negata (Publickey)" e come risolverlo. Ricorda, questo errore è come una chiave che non si adatta a una serratura: di solito significa che c'è qualcosa che non va nel modo in cui le tue chiavi SSH sono impostate o utilizzate. Seguendo i passaggi che abbiamo delineato, dovresti essere in grado di risolvere il problema e tornare a avere conversazioni sicure con altri computer.