Depois de mexer um pouco, descobri que o problema estava conectado a um diretório pessoal criptografado (o que eu perdi completamente durante a configuração, já que estava configurando mais de 10 VMs por meio de scripts).
Ainda confuso de que o servidor não registrou que não conseguiu acessar /home/userdir/.ssh/authorized_keys
e mostrou apenas:
Feb 7 09:30:59 server-name sshd[48527]: Connection closed by (client public IP) port 64050 [preauth] (the only mention of this connection attempt)
Em geral, existem duas soluções:
- Descriptografe o diretório inicial (isso é confuso, eu não recomendaria isso). Google para instruções.
ecryptfs permanent decrypt
obtém bons resultados. - Mova o
authorized_keys
para fora da sua pasta pessoal criptografada para que seja acessível.
Desde que 1) é confuso, eu recomendaria 2).
Movendo authorized_keys
Eu recomendaria criar uma estrutura de diretórios em /etc/ssh/
like /etc/ssh/keys/%user/authorized_keys
e alterando a linha AuthorizedKeyFile em /etc/ssh/sshd_config
para corresponder. Ou seja:
#original (%h expands to /home/userdir, which is encrypted)
AuthorizedKeysFile %h/.ssh/authorized_keys
#new (%u expands to username)
AuthorizedKeysFile /etc/ssh/keys/%u/authorized_keys
Depois de fazer o login agora, você deve estar em uma pasta home minimalista sem conteúdo, execute ecryptfs-mount-private
para descriptografar a pasta home (você precisará inserir a frase secreta, por padrão, sua senha). A maneira mais fácil de contornar isso é adicionar um .profile
na sua pasta home minimalista que o descriptografa e envia para sua pasta pessoal real.
# place in minimalistic .profile
ecryptfs-mount-private
# if below doesn't work, replace with static cd /home/userdir
cd $HOME