Si desidera che sia la cartella della chiave che la chiave stessa siano leggibili solo dall'utente. Faccio sempre chmod 700 ~/.ssh; chmod 600 ~/.ssh/*
me stesso, dove ovviamente vorrai cambiare quelle directory per adattarle al tuo caso d'uso.
In alternativa, puoi chown -R $USERNAME ~/.ssh; chmod -R go-rwx ~/.ssh
Il chown
può essere necessario, ad esempio, quando il file chiave è stato scaricato o installato come root.
Non fare mai un chmod 777
sulla tua chiave privata! Lo rende (possibilmente) leggibile pubblicamente e tu non lo vuoi. Inoltre, SSH in alcuni casi rifiuterà persino di utilizzare un file con autorizzazioni troppo permissive, quindi potresti spararti sui piedi con questo.
Se le autorizzazioni del file non sono il problema, possono esserci diverse altre cause. Potresti avere permessi impostati errati su una qualsiasi delle directory ~/.ssh
o ~/.ssh/keyfolder
(tecnicamente anche su ~
ma poi questo non sarebbe l'unico sintomo). Usa ls -adl
per ispezionare quelle directory. Dovrebbero avere rwx
per te, ma ---
sia per il gruppo che per il mondo.
Un altro problema potrebbe essere (ma questo è abbastanza raro) è che il file ssh-add
binario ha il setuid
bit impostato, facendolo funzionare come un utente diverso e quindi non ha il diritto di leggere la tua chiave privata. Usa ls -lh $(which ssh-add)
per ispezionarlo.