Questo breve tutorial mostra come correggere l'errore ssh "sign_and_send_pubkey:firma non riuscita:operazione rifiutata dall'agente Permesso negato (publickey)" su Linux.
Se stai tentando di connetterti al server remoto tramite SSH, potresti riscontrare un errore di autorizzazione negata. Questo errore può verificarsi per diversi motivi. E la soluzione a questo problema dipende dal motivo esatto alla base dell'errore.
Nel mio caso, avevo le chiavi pubbliche e private memorizzate sul mio desktop Ubuntu 16.04. Dopo il rilascio di Ubuntu 18.04, ho deciso di eseguire l'aggiornamento a questa versione più recente. Preferisco una nuova installazione rispetto agli aggiornamenti della distribuzione.
Quindi, ho eseguito un backup delle cartelle principali della mia directory Home inclusa la cartella .ssh che aveva le chiavi pubbliche e private su un disco esterno.
Una volta installato, ho abilitato SSH su Ubuntu 18.04 e ripristinato tutto, comprese le chiavi SSH.
Ora, quando ho provato a connettermi al server remoto usando ssh, ho pensato che avrebbe funzionato subito perché avevo le stesse chiavi pubbliche e private.
Ma non ha funzionato. SSH mi ha dato questo errore:
sign_and_send_pubkey: signing failed: agent refused operation
[email protected]: Permission denied (publickey).
Se ti trovi in una situazione simile in cui hai copiato le tue chiavi SSH da un'altra fonte, lascia che ti mostri come correggere questo errore SSH.
Correggi i permessi dei file sulla cartella ~/.ssh e il suo contenuto
Come regola pratica, puoi impostare i seguenti permessi sulla directory ssh e sui suoi file (chiavi private, chiavi pubbliche, known_hosts, file di configurazione ssh ecc.)
Elemento | Autorizzazione |
---|---|
directory .ssh | 700 ((drwx------) |
chiavi pubbliche | 644 (-rw-r--r--) |
chiavi private | 600 (-rw-------) |
chiavi_autorizzate | 600 (-rw-------) |
host_noti | 600 (-rw-------) |
configurazione | 600 (-rw-------) |
Potresti non avere tutti i file ma devi avere le chiavi pubbliche e private qui.
Ora vediamo come modificare i permessi dei file sulle chiavi ssh e altri file.
Correzione dell'errore di autorizzazione negata (chiave pubblica)
Quindi il problema sta con i permessi dei file qui. Vedi, quando ho copiato i file, l'USB era nel formato di file FAT di Microsoft. Questo file non supporta i permessi dei file UNIX/Linux.
E quindi le autorizzazioni sulle chiavi ssh copiate sono state modificate in 777.
Per SSH, i permessi dei file sono troppo aperti. Semplicemente non è consentito avere 777 autorizzazioni sulle chiavi pubbliche o private. Ed è per questo che SSH ha rifiutato la connessione qui.
ls -l .ssh
-rwxrwxrwx 1 abhishek abhishek 1766 Nov 12 2017 id_rsa
-rwxrwxrwx 1 abhishek abhishek 398 Nov 12 2017 id_rsa.pub
-rwxrwxrwx 1 abhishek abhishek 4214 Sep 21 21:39 known_hosts
La chiave privata dovrebbe avere i permessi di lettura e scrittura solo per l'utente e nessun altro per il gruppo e altri.
Dovresti cambiare il permesso usando il comando chmod:
chmod 600 ~/.ssh/id_rsa
Allo stesso modo, la chiave pubblica non dovrebbe avere autorizzazioni di scrittura ed esecuzione per il gruppo e altri.
chmod 644 ~/.ssh/id_rsa.pub
Ora che hai inserito le autorizzazioni corrette, puoi connetterti di nuovo a ssh. A questo punto, ti chiederà la tua password di amministratore per sbloccare le chiavi. Inserisci la tua password di amministratore e dovresti essere pronto per partire.
Questo mi ha anche insegnato una lezione sul fatto che copiare e incollare i file è una cattiva idea e dovrebbe essere eseguito un backup adeguato altrimenti tutti i file avranno le pericolose autorizzazioni 777 su di essi. Ho dovuto modificare ricorsivamente i permessi dei file sull'intera directory Home e fidati di me, non è stata una cosa carina da fare.
Come ho detto prima, ci possono essere vari motivi per questo errore. Per il problema relativo all'autorizzazione del file aperto, questa correzione dovrebbe aiutarti a correggere l'errore di autorizzazione negata (chiave pubblica) con SSH. Se sei interessato, puoi leggere di più sulle basi di SSH.
Fammi sapere nella sezione commenti se la correzione ha funzionato per te o meno. Suggerisci anche la tua opinione sulla copia delle chiavi ssh su altri computer.