ssh login usando chaves ssh só funciona uma vez depois do login no site

3

Eu tenho um problema interessante com o ssh. Aqui está a configuração.

Meu cliente (executando o Ubuntu 17.04) possui chaves ssh públicas e privadas. Eu copiei a chave pública para o servidor (executando o Ubuntu Server 16.04.3 LTS) usando o comando ssh-copy-id . Eu verifiquei isso funcionado, observando o arquivo authorized_keys no servidor; a chave pública do meu cliente é a única listada.

Agora, para o problema. Eu sou capaz de acessar o servidor do cliente através do ssh, usando minha chave ssh privada. Mas após o logout e tentativa de ssh novamente, recebo o seguinte erro:

Permission denied (publickey).

Quando eu faço o login no servidor no console, eu uso minha senha para fazer login e funciona bem. Então, quando eu tento SSH novamente do meu cliente, ele funciona novamente. E eu posso fazer logout e logar quantas vezes eu quiser. Assim que eu sair do console no servidor (como se eu estivesse fisicamente no servidor logado antes disso), eu posso SSH do meu cliente exatamente mais uma vez. Então, assim que a sessão for encerrada, recebo novamente o erro Permission denied (publickey). em todas as tentativas subsequentes de SSH. Alguma idéia?

Aqui está o meu arquivo de configuração ssh no meu cliente:

Host sauron
        HostName 192.168.1.191
        User joe
        PubKeyAuthentication yes
        IdentityFile id_rsa

Mais uma coisa a mencionar é que tenho todo o SSD no servidor criptografado. Eu tenho que desbloqueá-lo sempre que eu inicializo o servidor com uma senha de criptografia. Não tenho certeza se isso é relevante. Eu suspeito que poderia ser um problema de permissões, embora eu também não tenha certeza disso. Sugestões seriam muito apreciadas e, por favor, pergunte se você precisa de esclarecimentos sobre qualquer coisa.

    
por jeklund 24.08.2017 / 04:49

1 resposta

0

Graças a @muru comentar sobre diretórios pessoais criptografados, fui levado a esse artigo sobre como lidar com isso.

O TLDR; desse artigo é o seguinte e resolveu o meu problema:

  1. Crie um diretório em /etc/ssh/ com o mesmo nome do usuário de login que você está usando. No meu caso: /etc/ssh/joe .

  2. Copie o arquivo authorized_keys para este diretório.

  3. Defina as permissões corretas desse arquivo e diretório para o usuário.

  4. Adicione a seguinte linha ao arquivo sshd_config:

AuthorizedKeysFile /etc/ssh/%u/authorized_keys

  1. Reinicie o SSH.

Tudo corrigido!

    
por jeklund 26.08.2017 / 03:45