Como definir as permissões corretas de diretório SSH no Linux

Como definir as permissões corretas de diretório SSH no Linux

Para que o SSH funcione bem, requer permissões corretas no ~/.ssh ou /Home/Nome de usuário/.ssh Diretório: o local padrão para todos os arquivos de configuração e autenticação SSH específicos do usuário. As permissões recomendadas são ler/escrever/executar para o usuário e não deve ser acessível pelo grupo e outros.

Além do mais, ssh também exige que os arquivos dentro do diretório tenham ler escrever permissões para o usuário e não estar acessível por outros. Caso contrário, um usuário pode encontrar o seguinte erro:

Autenticação recusada: má propriedade ou modos para diretório 

Este guia explica como definir permissões corretas no .ssh diretório e os arquivos armazenados nele, em sistemas Linux.

Defina as permissões de diretório SSH corretas no Linux

Se você encontrar o erro acima, poderá definir as permissões corretas de diretório SSH no .ssh diretório usando o chmod comando.

# chmod u+rwx, go-rwx ~/.ssh ou # chmod 0700 ~//.ssh 

Para verificar as permissões no ~/.ssh diretório, use o comando ls com o -eu e -d Bandeiras, como assim:

# ls -ld .ssh/ 
Verifique as permissões no diretório SSH

A seguir estão alguns dos arquivos que você encontrará no ~/.ssh diretório:

  • arquivo de chave privada (e.g id_rsa).
  • chave pública (e.g .arquivo de pub) - A chave pública para autenticação, que também contém informações confidenciais, portanto, deve ter lido e gravação permissões para o proprietário, permissão somente leitura por grupo e outros.
  • Autorizado_keys - Contém a lista das chaves públicas que podem ser usadas para fazer login como esse usuário. Não é altamente sensível, mas deveria ter lido e escrever permissões para o proprietário e não ser acessível pelo grupo e outros.
  • conhecido_hosts - armazena uma lista de teclas host para todos os hosts que o usuário do SSH fez login. Deveria ter lido e escrever permissões para o proprietário e não ser acessível por grupos e outros.
  • Config - um arquivo de configuração por usuário e deveria ter lido e gravar permissões para o proprietário e não deve ser acessível pelo grupo e outros.

Por padrão, os arquivos sob o ~/.ssh O diretório é criado com o conjunto de permissões corretas. Para verificar suas permissões, execute o seguinte comando dentro do seu diretório inicial:

# ls -l .ssh/ 
Verifique as permissões de arquivos no diretório SSH

Se o SSH reclamar de permissões erradas em qualquer um dos arquivos acima, você poderá definir as permissões corretas para qualquer um dos arquivos como este:

# chmod u+rw, go-rwx .ssh/id_rsa # chmod u+rw, go-rwx .ssh/id_rsa.pub # chmod u+rw, go-rwx .ssh/autorizado_keys # chmod u+rw, go-rwx .ssh/conhecido_hosts # chmod u+rw, go-rwx .ssh/config ou # chmod 600 .ssh/id_rsa # chmod 600 .ssh/id_rsa.pub # chmod 600 .ssh/autorizado_keys # chmod 600 .ssh/conhecido_hosts # chmod 600 .ssh/config 

Além disso, o diretório doméstico de um usuário não deve ser escrito pelo grupo ou por outros, como mostrado na captura de tela a seguir.

# ls -ld ~ 
Verifique as permissões no diretório do usuário

Para remover as permissões de gravação para o grupo e outros no diretório inicial, execute este comando:

# chmod go-w ~ ou # chmod 755 ~ 

Você também pode ler os seguintes artigos relacionados ao SSH:

  • Como proteger e endurecer o servidor OpenSsh
  • 5 melhores práticas de segurança do servidor OpenSsh
  • Como configurar o login sem senha do SSH no Linux [3 etapas fáceis]
  • Como bloquear ataques de força bruta ssh usando sshguard
  • Como usar a batida portuária para proteger o serviço SSH no Linux
  • Como alterar a porta SSH no Linux

É isso por agora! Use a seção de comentários abaixo para fazer perguntas ou adicionar seus pensamentos a este tópico.