Descobrimos que a pasta $ HOME / .ssh do usuário quebrado tinha a permissão "write" habilitada para o grupo. chmod go-rwx $HOME/.ssh
corrigiu o problema.
Eu tenho um par de chaves RSA público / privado no meu laptop; em uma máquina remota eu tenho duas contas A e B, cada uma com a chave pública em /home/{A, B}/.ssh/authorized_keys. Com a chave privada carregada no ssh-agent no meu laptop, posso ssh para o A @ remote sem uma senha, mas o B @ remote solicita uma senha.
Não tenho ~ / .ssh / ssh_config no meu laptop. O usuário A ainda não tem senha; B faz. Mudar / etc / ssh / ssdh_config para "PasswordAuthentication no" apenas resulta em "ssh publickey denied" para o usuário B.
O servidor está no Ubuntu 9.10 Karmic, com OpenSSH_5.1p1 Debian-6ubuntu2, OpenSSL 0.9.8g 19 de outubro de 2007. Laptop é Ubuntu 10.04 com OpenSSH_5.3p1.
Descobrimos que a pasta $ HOME / .ssh do usuário quebrado tinha a permissão "write" habilitada para o grupo. chmod go-rwx $HOME/.ssh
corrigiu o problema.
No meu caso, além das permissões para o arquivo .ssh/authorized_keys
(s. resposta por @tobym), a causa do problema era uma conta bloqueada.
A depuração no servidor com sudo tail -f /var/log/auth.log
mostrou
User <account-name> not allowed because account is locked
A conta foi bloqueada porque não defini nenhuma senha, pois queria apenas a autenticação baseada em chave e sem senha. Solução foi para
sudo passwd <account-name>
e atribua alguma senha complexa aleatória.