Chcete, aby složka klíčů i samotný klíč byly čitelné pouze pro uživatele. Vždy dělám chmod 700 ~/.ssh; chmod 600 ~/.ssh/*
já, kde samozřejmě budete chtít změnit tyto adresáře tak, aby vyhovovaly vašemu vlastnímu případu použití.
Případně můžete chown -R $USERNAME ~/.ssh; chmod -R go-rwx ~/.ssh
chown
může být nezbytné, když byl soubor klíče stažen nebo nainstalován například jako root.
Nikdy neprovádějte chmod 777
na váš soukromý klíč! Díky tomu je (možná) veřejně čitelný, a to nechcete. Navíc SSH v některých případech dokonce odmítne použít soubor s příliš permisivními oprávněními, takže byste si s tím mohli střílet do nohy.
Pokud problém s oprávněními souboru není, může to mít několik dalších příčin. V některém z adresářů ~/.ssh
můžete mít nastavena nesprávná oprávnění nebo ~/.ssh/keyfolder
(technicky také na ~
ale pak by to nebyl jediný příznak). Použijte ls -adl
zkontrolovat tyto adresáře. Měly by mít rwx
pro vás, ale ---
pro skupinu i svět.
Dalším problémem může být (ale to je poměrně vzácné) to, že ssh-add
binární má setuid
bit set, což způsobí, že běží jako jiný uživatel, a tudíž nemá právo číst váš soukromý klíč. Použijte ls -lh $(which ssh-add)
to zkontrolovat.