Parece que você tem o básico correto.
O motivo mais comum que vi para isso falhar é as permissões no arquivo authorized_keys
remoto e nos diretórios acima dele. Antes de permitir a autenticação baseada em chave, sshd
executa uma verificação de permissões; se não gostar dos resultados, não permite a autenticação. Eu geralmente defino ~/.ssh
para 0700 e ~/.ssh/authorized_keys
para 0600. Acredito que o $ HOME real não pode ter gravação em grupo ou mundo, embora a leitura seja boa.
Se isso ainda não resolver, o próximo passo é fazer algumas depurações no lado do servidor:
server$ /usr/sbin/sshd -d -p 2222
Em seguida, conecte-se ao servidor "debug" do seu cliente:
client$ ssh -v user@host -p 2222
Você receberá informações de depuração copiosas sobre stderr
no servidor. Ainda não encontrei um problema de autenticação que não consegui rastrear a partir daí.