Nota: Este artigo foi publicado originalmente em 2018. Alguns passos, comandos ou versões de software podem ter mudado. Consulte a documentação atual de SSH para obter as informações mais recentes.

Pré-requisitos

Antes de começar, certifique-se de que você tem:

  • Um sistema executando Ubuntu (edição desktop ou servidor)
  • Acesso ao terminal com privilégios sudo
  • Familiaridade básica com a linha de comando do Linux

Você provavelmente está vindo de um post relacionado anterior ((</linux/ubuntu/resolved-permission-denied-publickey-when-trying-to-access-via-ssh-an-ubuntu-server/>)), mas se não, você deveria dar uma olhada para ter uma ideia de por que você pode querer armazenar sua chave pública SSH fora do seu diretório home. Eu não sou um especialista em segurança, então talvez isso não seja uma boa prática em servidores compartilhados, mas no meu cenário, todos são usuários confiáveis, então armazenar as chaves públicas SSH dos usuários em outro lugar foi uma escolha aceitável.

Como armazenar sua chave pública SSH em um diretório diferente

A chave aqui está no arquivo de configuração localizado em /etc/ssh/sshd_config. Vamos procurar a seguinte configuração: RSAAuthentication yes PubkeyAuthentication yes #AuthorizedKeysFile %h/.ssh/authorized_keys Essa última linha é o ponto principal aqui. No momento, ela está comentada, mas você pode ver o comportamento padrão do programa: %h significa a pasta home, então basicamente ele armazenará na pasta home de cada usuário as authorized_keys para esse usuário. No meu caso, a pasta home estava criptografada, então eu continuava recebendo um erro ”(</linux/ubuntu/resolved-permission-denied-publickey-when-trying-to-access-via-ssh-an-ubuntu-server/>)” ao tentar conectar via SSH ao meu servidor, pois o serviço SSH não conseguia descriptografar minha pasta home e validar minha(s) chave(s) pública(s). Solução? Eu movi para outro local, veja este exemplo: /etc/ssh/authorized_keys/%u. O que isso faz é armazenar na pasta /etc/, que é legível pelo serviço, as chaves autorizadas de cada usuário em um arquivo com seu nome de usuário. Então, é assim que a linha ficaria: AuthorizedKeysFile /etc/ssh/authorized_keys/%u Portanto, como cada usuário precisa poder escrever na pasta para armazenar suas chaves, você precisa torná-la gravável por eles ou precisa criar manualmente os arquivos e definir seus respectivos proprietários. Se você tem muitos usuários, a primeira opção faz mais sentido, mas se tem apenas alguns, basta configurar manualmente o arquivo e as permissões para maior segurança. Reinicie o serviço e você verá que as coisas voltam a funcionar como deveriam. Espero que você ache isso útil!

Resumo

Você aprendeu com sucesso a armazenar sua chave pública SSH em um diretório diferente. Se encontrar algum problema, verifique novamente os pré-requisitos e certifique-se de que seu ambiente SSH esteja configurado corretamente.

Artigos Relacionados