Por que o SSH não está honrando minhas chaves autorizadas?

3

Eu tenho 2 laptops em casa, ambos executando o Ubuntu 12.04 (Desktop), e ambos usando o mesmo roteador wifi NetGear. Eu usei uma técnica chamada "MAC binding" em uma das máquinas para que o roteador sempre atribuísse o mesmo 192.168.1.52 endereço IP toda vez que ele tentasse se conectar à Internet. ( Unrelated: ligação MAC significa apenas configurar o roteador para sempre vincular um endereço MAC específico a um IP específico. )

Então, agora, eu tenho 1 laptop que sempre recebe um IP aleatório no intervalo de 192.168.1.1 a 192.168.1.50 e 1 laptop (meu "servidor de compilação") que sempre são atribuídos 192.168.1.52.

Estou tentando escrever um script bash que executarei no laptop "cliente" (a máquina IP aleatória) que irá ssh no servidor de construção (máquina 192.169.1.52); daí a necessidade de o servidor de compilação ter um IP "dedicado" de dentro da minha LAN. Eu não quero ter que explicitamente alimentar uma senha com esses scripts do bash, então eu segui as instruções em este artigo aqui para gerar chaves SSH. Especificamente, eu:

  1. Gerar chaves SSH no meu laptop cliente (produzindo um arquivo id_rsa.pub )
  2. Eu scp 'd o arquivo id_rsa.pub no meu servidor de compilação e cat d no arquivo ~/.ssh/authorized_keys . Eu verifiquei que a chave SSH do meu laptop cliente agora existe dentro do arquivo authorized_keys no servidor de compilação.
  3. Fechei o terminal no meu laptop cliente e reabrei um novo, apenas para uma boa medida (caso o Linux precise disso para reiniciar qualquer coisa, etc.)
  4. Tentei, então, fazer o SSH no servidor de compilação e ainda estou sendo solicitado a fornecer uma senha!

O que está acontecendo aqui? Por que o SSH no meu servidor de compilação não está honrando as chaves autorizadas do meu laptop cliente? Preciso reiniciar qualquer coisa no servidor de compilação ( sshd , etc.)? Eu perdi alguma etapa crucial aqui? Como começar a solucionar problemas? Obrigado antecipadamente!

Atualizar : Aparentemente, o Ubuntu não tem um /var/log/secure.log , mas tem um /var/log/auth.log . Quando eu rastrear esse log no servidor de compilação e, em seguida, tentar acessar o SSH no servidor de compilação a partir do meu laptop cliente, veja o que acontece:

  1. Eu corro ssh myuser@buildserver do laptop do cliente
  2. Solicito uma senha.
  3. Assim que insiro a senha, vejo a seguinte saída no arquivo auth.log do servidor de construção:

May 21 12:02:07 buildserver sshd[28930]: error: RSA_public_decrypt failed: error:0407006A:lib(4):func(112):reason(106)
May 21 12:02:10 buildserver sshd[28930]: pam_sm_authenticate: Called
May 21 12:02:10 buildserver sshd[28930]: pam_sm_authenticate: username = [myuser]
May 21 12:02:10 buildserver sshd[28930]: pam_sm_authenticate: /home/myuser is already mounted
May 21 12:02:10 buildserver sshd[28930]: Accepted password for myuser from 192.168.1.3 port 39821 ssh2
May 21 12:02:10 buildserver sshd[28930]: pam_unix(sshd:session): session opened for user myuser by (uid=0)
May 21 12:02:10 buildserver sshd[29003]: Received disconnect from 192.168.1.3: 11: disconnected by user
May 21 12:02:10 buildserver sshd[28930]: pam_unix(sshd:session): session closed for user myuser

Algo que talvez eu devesse ter mencionado: em ambas as máquinas (o laptop cliente e meu servidor de compilação, o nome de usuário / conta é myuser ) - o Linux poderia ficar confuso por causa do mesmo nome de usuário em ambas as máquinas?

    
por pnongrata 21.05.2013 / 17:38

3 respostas

6

Primeiro passo: reinicie o ssh com /etc/init.d/sshd restart . Além disso, verifique se as permissões no arquivo authorized_users estão corretas. Para verificar, use chmod 600 ~/.ssh/authorized_keys e garanta que ele seja de propriedade do usuário no qual você está efetuando login.

    
por 21.05.2013 / 17:43
5

Para mim, excluir o id_rsa.pub ajudou (eu estava usando a tecla ~ / .ssh / id_rsa). Isso foi causado, porque id_rsa.pub não estava combinando minha chave id_rsa.

    
por 14.03.2014 / 19:23
1

Em que formato está sua chave pública?

Acho que muitas ferramentas geram chaves assim:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "1024-bit RSA, converted from OpenSSH by [email protected]"
AAAAB3NzaC1yc2EAAAABIwAAAIEA1on8gxCGJJWSRT4uOrR13mUaUk0hRf4RzxSZ1zRb
YYFw8pfGesIFoEuVth4HKyF8k1y4mRUnYHP1XNMNMJl1JcEArC2asV8sHf6zSPVffozZ
5TT4SfsUu/iKy9lUcCfXzwre4WWZSXXcPff+EHtWshahu3WzBdnGxm5Xoi89zcE=
---- END SSH2 PUBLIC KEY ----

E meu arquivo authorized_keys sempre continha a chave assim:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA1on8gxCGJJWSRT4uOrR13mUaUk0hRf4RzxSZ1zRbYYFw8pfGesIFoEuVth4HKyF8k1y4mRUnYHP1XNMNMJl1JcEArC2asV8sHf6zSPVffozZ5TT4SfsUu/iKy9lUcCfXzwre4WWZSXXcPff+EHtWshahu3WzBdnGxm5Xoi89zcE=

(A chave pública concatenada em conjunto em uma linha)

    
por 21.05.2013 / 18:16