2
respostas

[Dúvida] Acesso remoto com níveis de permissões "maiores" que 400?

Não sei se faz muito sentido essa pergunta, mas...

  • É possível ter acesso remoto com outros níveis de permissões além de 400?
    • Por exemplo, 700, 600 ou 500. Pois, nesses casos, ainda é só o dono que pode ler a chave.
2 respostas

Olá amigo.
Sua pergunta é interessante mesmo!
Vamos lá!
Faz todo sentido . Sim: os modos 700, 600, 500 etc. existem e têm efeitos diferentes, mas o ponto chave para o SSH é quem consegue ler/alterar os ficheiros (grupo/outros não podem). Vou resumir o que importa na prática e dar recomendações.
Para ficheiros de chave privada, os bits de execução não fazem sentido (não é um binário), mas não prejudicam a segurança se apenas o dono tiver permissão. O que importa é grupo/outros não terem permissões.

Como o SSH usa isso (prática)

  • Chave privada no cliente (~/.ssh/id_rsa, id_ed25519, etc.): o cliente SSH espera que apenas o dono consiga ler (ou ler+escrever). Modos 600 ou 400 são normalmente recomendados/aceitos.
    • chmod 600 ~/.ssh/id_rsa (recomendado)
    • chmod 400 ~/.ssh/id_rsa também funciona (mais restritivo).
  • Diretório .ssh no servidor/cliente: deve ser somente acessível ao dono : normalmente 700 (drwx------).
    • chmod 700 ~/.ssh
  • authorized_keys no servidor (~/.ssh/authorized_keys): deve ser acessível só ao dono : 600 é a recomendação.
    • chmod 600 ~/.ssh/authorized_keys
  • Home directory: se for demasiado permissivo (por ex. world-writable), o sshd pode recusar chaves; idealmente não deve permitir escrita para grupo/others.

E o sshd (servidor)?

  • O sshd verifica permissões dos ficheiros quando StrictModes yes (padrão). Se as permissões forem “inseguras” (por ex. grupo/outros com escrita/leitura) ele poderá recusar autenticação por chave.
  • Você poderia desligar essa verificação (StrictModes no) no sshd_config, mas não é recomendado: abre risco de segurança.

Exemplos de comandos úteis

# no cliente (chave privada)
chmod 600 ~/.ssh/id_rsa      # recomendado
# ou
chmod 400 ~/.ssh/id_rsa      # também aceitável
# no servidor (diretório e authorized_keys)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
# garantir propriedade correta
chown -R usuario:usuario ~/.ssh

Sobre modos 500/700 com chaves

  • 500 (r-x) dá permissão de execução ao ficheiro — desnecessário para chaves, não acrescenta segurança.
  • 700 (rwx) também inclui bit de execução; igualmente desnecessário mas não faz com que o SSH recuse desde que grupo/outros não tenham permissão.
  • 600 e 400 são semanticamente mais corretos para chaves privadas.

Sistemas de ficheiros remotos (NFS) ou com ACLs/SELinux podem introduzir comportamentos diferentes.
Aí convém verificar logs (/var/log/auth.log ou journalctl -u sshd) se algo falhar.
Se a autenticação falhar por causa de permissões, o log do sshd normalmente explica (“Authentication refused: bad ownership or modes for file ...”).
Espero que tenha respondido sua pergunta senão comente ai.
Comente ai de qualquer jeito.
Bons estudos.

Então, Ronaldo, vou levar algum tempo para assimilar boa parte desses conceitos, pois são novos para mim. Mas acho que entendi que não é interessante (ou até desnecessário) utilizar os modos 500 e 700 em chaves privadas, pois elas não são binários (isto é, não são passíveis de execução), mas nos outros casos, como nos modos 400 e 600, são no mínimo recomendadas a utilização em chaves privadas.
Grato pelo feedback e bons estudos.