Inconsistência de login sem senha SSH

1

Estou tentando configurar um login sem senha para que o SSH faça o script de alguns testes automatizados no meu sistema.

Eu preciso configurar isso para duas máquinas diferentes, então da máquina "A" eu preciso usar login sem senha para as máquinas "B" e "C".

Eu executei o seguinte, que funciona para a máquina "B", mas não para a máquina "C".

me@A# ssh-keygen
... [ follow the instructions just pressing Enter ]
me@A# ssh-copy-id -i ~/.ssh/id_rsa.pub root@B
... [ enter password when requested, etc.]
me@A# ssh root@B
Last Login XXX from YYY
root@B#

Então, isso funciona bem para a máquina "B". Se eu seguir exatamente o mesmo procedimento para a máquina "C", então não funciona.

Ambas as máquinas são do Scientific Linux 6.4, atualizadas e eu executei "telnet B 22" e "telnet C 22" para determinar qual versão do SSH está rodando em cada máquina ("SSH-2.0-OpenSSH_5". 3 "). Eu diff'd os arquivos / etc / ssh / sshd_config nas máquinas B e C. Eles são idênticos.

Eu tentei iniciar com a máquina "C", tenho tido o cuidado de limpar o diretório ".ssh" em todas as três máquinas toda vez que eu inicio um novo teste, mas recebo o mesmo resultado a cada vez. "B" funciona, "C" não - ele pede a senha ainda (mas depois me deixa entrar, pelo menos)

Estou procurando por um teste específico para tentar descobrir qual é a diferença entre essas duas máquinas, que fará com que isso funcione para uma máquina, mas não para a outra. Eles estão em caixas idênticas mesmo. Um deles tem 1GB de memória, um tem 4Gb. Essa é a única diferença física.

    
por user1738833 19.12.2013 / 12:09

2 respostas

2

Verifique as permissões no diretório .ssh da máquina remota e no arquivo authorized_keys nesse diretório. Elas devem ser legíveis apenas pelo usuário que você está usando para o ssh, portanto, ".ssh" deve ter as permissões 0700 e "authorized_keys" 0600, e elas precisam ter a propriedade correta.

Você também pode usar o argumento "-vvv" para o seu comando ssh para ver se a chave correta está sendo oferecida como parte da autenticação e onde o processo para e retorna à senha

    
por 19.12.2013 / 12:37
0

Na máquina C, você pode tentar parar o serviço sshd e executar o daemon ssh no modo de depuração. Você pode fazer isso enquanto estiver conectado via SSH, apenas certifique-se de manter uma sessão extra para reiniciar o serviço sshd. Você pode iniciar o sshd no modo de depuração com:

$ service sshd stop
$ /usr/sbin/sshd -d

Em seguida, tente fazer logon no servidor, e a saída de depuração provavelmente informará qual é o problema. Não se esqueça de reativar o serviço sshd quando terminar.

    
por 20.12.2013 / 15:56