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:
- Gerar chaves SSH no meu laptop cliente (produzindo um arquivo
id_rsa.pub
)
- 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.
- 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.)
- 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:
- Eu corro
ssh myuser@buildserver
do laptop do cliente
- Solicito uma senha.
- 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?