Por que o login ssh com o mesmo par de chaves funciona para uma conta, mas não para outra na mesma máquina?

Por que o login ssh com o mesmo par de chaves funciona para uma conta, mas não para outra na mesma máquina?

Eu tenho um par de chaves pública/privada RSA em meu laptop; em uma máquina remota, 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 fazer ssh para A@remote sem senha, mas B@remote solicita uma senha.

Não tenho ~/.ssh/ssh_config no meu laptop. O usuário A ainda não possui senha; B faz. Mudar /etc/ssh/ssdh_config para "PasswordAuthentication no" apenas resulta em "ssh publickey negado" 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. O laptop é Ubuntu 10.04 com OpenSSH_5.3p1.

Responder1

Acontece que a pasta $HOME/.ssh do usuário quebrado tinha a permissão "gravação" habilitada para o grupo. chmod go-rwx $HOME/.sshcorrigiu o problema.

Responder2

No meu caso, além das permissões para o .ssh/authorized_keysarquivo (ver resposta de @tobym), a causa do problema foi uma conta bloqueada.

Depuração no servidor com sudo tail -f /var/log/auth.logshow

User <account-name> not allowed because account is locked

A conta foi bloqueada porque não defini nenhuma senha, pois queria apenas autenticação baseada em chave e sem senha. A solução foi

sudo passwd <account-name>

e atribua alguma senha complexa aleatória.

informação relacionada