Permissões de chaves SSH: quando usar chmod 600 ou 700
Use chmod 600 na chave SSH privada e 700 no diretório, depois confira permissões e propriedade antes de tentar a conexão novamente.
Iniciar lição interativaUse chmod 600 em uma chave SSH privada quando o proprietário precisar lê-la e alterá-la. Use chmod 700 no diretório .ssh para que somente o proprietário possa listar, modificar ou entrar nele. O OpenSSH rejeita chaves privadas acessíveis por outros usuários. Confira a propriedade além do modo, pois chmod não corrige uma chave pertencente à conta errada. A lição sobre permissões de SSH oferece caminhos seguros para praticar antes de alterar uma chave real.
Aplique 600 ao arquivo da chave privada
Para uma chave Ed25519 privada no diretório pessoal, execute:
chmod 600 "$HOME/.ssh/id_ed25519"
O modo 600 significa:
| Categoria | Permissão |
|---|---|
| proprietário | leitura + escrita |
| grupo | nenhuma |
| demais | nenhuma |
O SSH precisa ler a chave privada, mas outras contas não devem acessá-la. Um modo somente leitura, como 400, também pode atender a essa regra quando o proprietário não precisa modificar o arquivo. 600 é a escolha prática mais comum para uma chave gerenciada pelo próprio proprietário.
Não aplique a mesma regra automaticamente à chave pública terminada em .pub. Uma chave pública foi feita para ser compartilhada e não é secreta. A chave privada é o arquivo sensível que o OpenSSH se recusa a usar quando outras pessoas podem acessá-lo.
Aplique 700 ao diretório .ssh
Diretórios precisam da permissão de execução, também chamada de busca, para que as entradas dentro deles possam ser acessadas. Proteja o diretório com:
chmod 700 "$HOME/.ssh"
O modo 700 concede ao proprietário acesso de leitura, escrita e busca, sem dar acesso ao grupo ou aos demais usuários. Usar 600 em um diretório removeria o bit de busca e poderia impedir o próprio proprietário de abrir os arquivos internos, mesmo que o diretório fosse legível.
Evite atalhos recursivos como chmod -R 700 "$HOME/.ssh". Eles adicionariam permissão de execução a todos os arquivos comuns e eliminariam diferenças intencionais entre chaves privadas, chaves públicas, configurações e arquivos de hosts conhecidos. Altere o diretório e a chave privada específica separadamente.
Confira o modo e a propriedade em conjunto
Inspecione os dois caminhos após alterá-los:
ls -ld "$HOME/.ssh"
ls -l "$HOME/.ssh/id_ed25519"
A linha do diretório deve começar por drwx------, e a da chave privada por -rw-------. O proprietário mostrado nas duas linhas deve ser a conta que executa ssh.
Se o modo estiver correto, mas o proprietário não, investigue antes de alterá-lo. Em um sistema pessoal, a correção pretendida pode ser parecida com esta:
sudo chown "$USER" "$HOME/.ssh/id_ed25519"
Não copie esse comando para um sistema compartilhado ou gerenciado sem confirmar a política de contas. O guia de chown explica separadamente as verificações de propriedade e os riscos de mudanças recursivas.
Quando chmod parece não ajudar
Arquivos armazenados em sistemas de arquivos montados a partir do Windows, em rede, em contêineres ou gerenciados de outra forma podem não expor os bits de permissão Unix normalmente. Se chmod indicar sucesso, mas ls -l não mostrar uma mudança útil, examine a montagem e o comportamento do sistema de arquivos em vez de ampliar o acesso repetidamente.
Use ssh -v host para descobrir qual arquivo de identidade o SSH tenta carregar, mas não publique logs detalhados sem remover nomes de hosts, usuários e caminhos. O modo correto em uma chave não ajuda se o SSH estiver carregando outro arquivo.
Para entender o sistema octal, leia os números do chmod explicados. O OpenSSH documenta as verificações de acesso à chave privada no manual do ssh.
Referências
Estes links de documentação trazem detalhes confiáveis sobre os comandos usados neste artigo.
A seguir
Extraia linhas de log acionáveis rapidamente com filtros grep que não diferenciam maiúsculas de minúsculas.