Se o Terminal do macOS informar “UNPROTECTED PRIVATE KEY FILE” ou disser que sua chave SSH está acessível demais, restrinja o acesso à chave privada e verifique o diretório .ssh. Abra o Terminal e execute chmod 600 no arquivo de chave que você realmente usa. Isso torna o arquivo legível e gravável apenas pela sua conta; o SSH ignora arquivos de chave privada que outros usuários podem acessar. Manual do OpenBSD ssh(1)

Corrija as permissões da chave privada

Primeiro, identifique o arquivo de chave. Os nomes de chave privada padrão e comuns do SSH incluem id_ed25519 e id_rsa, mas você pode ter outro nome ou local. O sufixo .pub identifica uma chave pública; não aplique esta correção a esse arquivo em vez da chave privada.

Para uma chave Ed25519 padrão, digite:

chmod 600 "$HOME/.ssh/id_ed25519"

Para outra chave, substitua id_ed25519 pelo nome real do arquivo. Colocar o caminho entre aspas evita que espaços e outros caracteres do shell no nome do arquivo sejam tratados como sintaxe. Se a chave estiver em outro lugar, use o caminho completo dentro das aspas. O 600 concede acesso de leitura e gravação ao proprietário e remove o acesso para o grupo e outros usuários. Manual do OpenBSD chmod(1)

Você pode inspecionar o modo resultante com ls -l "$HOME/.ssh/id_ed25519". Uma exibição típica começa com -rw-------; os três primeiros caracteres de permissão após o tipo de arquivo mostram o acesso do proprietário, e os grupos restantes mostram nenhum acesso para o grupo ou outros. O proprietário do arquivo também deve ser a sua conta. Se ele pertencer a outro usuário, o chmod pode falhar ou o cliente SSH ainda pode não conseguir usá-lo. Verifique a propriedade com ls -l; evite alterar a propriedade às cegas, especialmente com sudo, porque a correção correta depende do motivo pelo qual o arquivo pertence a outra pessoa.

Verifique o diretório .ssh

O manual do SSH recomenda que ~/.ssh/ tenha permissão de leitura, gravação e busca pelo seu proprietário, e seja inacessível para outros. Se o SSH relatar um problema de permissões para o diretório em si, execute:

chmod 700 "$HOME/.ssh"

Isso remove o acesso do grupo e de outros, permitindo que sua conta tenha acesso total ao diretório. Se a chave estiver armazenada em uma pasta diferente, verifique cada diretório em seu caminho: a conta precisa de permissão de busca (execução) para alcançar o arquivo. Não execute chmod recursivamente em todo o seu diretório inicial (home) ou na pasta .ssh como uma primeira correção; isso pode alterar permissões em arquivos não relacionados que possuem necessidades diferentes. Manual do OpenBSD ssh(1)

Confirme se o SSH está usando essa chave

Uma chave corrigida ainda pode parecer não funcionar se o SSH estiver procurando em outro lugar ou oferecendo uma identidade diferente. Use -i para especificar uma chave para uma conexão. Substitua a conta e o host de exemplo pelos seus próprios:

ssh -i "$HOME/.ssh/id_ed25519" user@example.com

A opção -i seleciona o arquivo de identidade usado para autenticação por chave pública. Manual do OpenBSD ssh(1) Para obter um log de conexão mais detalhado, adicione -v:

ssh -v -i "$HOME/.ssh/id_ed25519" user@example.com

Se você gerencia vários hosts, pode definir IdentityFile em ~/.ssh/config; o bloco Host determina quais configurações de conexão se aplicam. O cliente também pode tentar chaves fornecidas pelo ssh-agent. IdentitiesOnly yes pode limitar as identidades oferecidas aos arquivos de identidade configurados quando um agente tem muitas chaves carregadas. Manual do OpenBSD ssh_config(5)

Saiba quando o erro está em outro lugar

Um aviso local de permissão de chave privada é diferente de Permission denied (publickey). Este último pode significar que o servidor não reconhece a chave pública correspondente, o nome de usuário está errado ou o SSH está tentando outra identidade. A chave pública correspondente à sua chave privada deve estar autorizada para a conta no host remoto; alterar permissões locais não instala essa chave pública no servidor. Manual do OpenBSD ssh(1)

Se o chmod retornar “Operation not permitted”, verifique se você é o proprietário do arquivo e se o caminho aponta para a chave pretendida. Evite tornar uma chave privada amplamente legível para silenciar o aviso: a restrição do SSH protege a credencial, e removê-la pode fazer com que o cliente rejeite a chave. Uma vez que a chave privada e seu diretório tenham permissões adequadas, tente novamente com -v e siga a saída de diagnóstico para distinguir um problema de arquivo local de um problema de autenticação ou do lado do servidor.

Fontes