Ativando a autenticação de chave pública para o sshd do servidor

1

Eu tenho dois servidores executando o RHEL 5. Ambos têm configurações quase idênticas. Eu configurei a autenticação do RSA Publickey em ambos, e um funciona, mas o outro não:

[my_user@client] $ ssh my_user@server1

--- server1 MOTD Banner ---

[my_user@server1] $

e no outro servidor:

[my_user@client] $ ssh my_user@server2
my_user@server2's password:

--- server2 MOTD Banner ---

[my_user@server2] $

Snippet do arquivo / etc / ssh / sshd_config do servidor2:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile        .ssh/authorized_keys

Quando executo ssh -vvv , recebo o seguinte snippet:

debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug3: Next authentication method: publickey
debug1: Offering public key: /home/my_user/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentication that can continue: publickey,gssapi-with-mic,passowrd
debug1: Offering public key: /home/my_user/.ssh/id_dsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentication that can continue: publickey,gssapi-with-mic,passowrd
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
my_user@server2's password:

EDIT: os servidores e os diretórios .ssh do cliente têm 700 permissões e todos os arquivos têm 644 ou 600 permissões

    
por aaron 15.03.2010 / 13:29

4 respostas

0

Christian e Warner estavam no caminho certo, era um erro de permissões, mas era b / c do diretório inicial, não do diretório .ssh:

$# tail --f=n /var/log/secure
Mar 22 10:52:57 my_server2 sshd[6278]: Authentication refused: bad ownership or modes for directory /home/my_user

$# ls -la /home/my_user
drwxrwx--- 21 my_user my_user    4096 Mar 22  10:37 .
...

Depois de chmod 'entrar no diretório para 755, o login funcionou corretamente.

    
por 22.03.2010 / 20:25
3

você verificou a permissão do sistema de arquivos em ambas as máquinas? O sshd é um pouco exigente quanto à permissão na pasta .ssh e nos arquivos dessa pasta.

.ssh deve ter 700 e os arquivos devem ter 644 ou menos.

    
por 15.03.2010 / 13:35
1

Esta solução será simples, considerando que você não alterou o sshd_config entre os servidores. Você pode executar um diff contra eles para ter certeza.

Como Christian disse, as permissões geralmente são a causa mais provável.

Se as permissões forem precisas, haverá uma incompatibilidade entre o par de chaves privado e público em um dos servidores.

    
por 15.03.2010 / 14:31
1

Desde que as respostas óbvias foram apropriadamente dadas, algumas outras opções de depuração:

execute um diff entre .ssh / authorized_keys no server1 e server2

Execute o daemon sshd em primeiro plano com o registro em log e ele deverá fornecer a justificativa para o motivo da rejeição da chave de autenticação.

    
por 16.03.2010 / 14:08