Como você diz nos comentários, não está usando a chave que você deseja. Você pode apontar a chave correta assim:
ssh -T -i /path/to/real/id_rsa nepton@xxx
Temos um servidor dev executando jenkins com várias tarefas que executam scripts de shell que se conectam ao nosso servidor ao vivo via SSH (usando autenticação baseada em chave).
Isso não parece funcionar de maneira confiável.
Se eu testar a conexão SSH sozinha fazendo login no servidor dev como o usuário "jenkins" e, em seguida, enviando SSH para o servidor ativo, a autenticação funcionará e me conectará sem o prompt de senha.
Se eu executar um dos jobs jenkins manualmente, ele funcionará na maior parte do tempo (embora um tenha falhado esta manhã solicitando que eu escrevesse este ticket), mas se eu automatizar o job para ser executado todas as noites, ele falhará na maioria das vezes (acho trabalhou uma vez).
O ponto de falha de cada vez é na conexão SSH:
> ssh -T nepton@xxx
> Permission denied, please try again.
> Permission denied, please try again.
> Permission denied (publickey,password).
Qualquer ajuda seria muito apreciada, pois estou completamente presa e o Linux definitivamente não é minha área de especialização.
Informações adicionais:
Permissões de /var/lib/jenkins/.ssh/ no Dev são:
drwx------ 2 jenkins jenkins 4096 Apr 4 13:31 .
drwxr-xr-x 13 jenkins jenkins 4096 Apr 4 13:38 ..
-rw------- 1 jenkins jenkins 1679 Apr 4 13:31 id_rsa
-rw-r--r-- 1 jenkins jenkins 400 Apr 4 13:31 id_rsa.pub
-rw-r--r-- 1 jenkins jenkins 1338 Apr 4 13:33 known_hosts
As permissões de /home/nepton/.ssh/ no servidor Live são:
drwx------ 2 nepton nepton 4096 Mar 20 17:37 .
drwx------ 4 nepton nepton 4096 Apr 2 10:52 ..
-rw------- 1 nepton nepton 2005 Apr 8 10:23 authorized_keys
-rw-r--r-- 1 nepton nepton 1106 Apr 1 10:39 known_hosts
Informações de depuração
ssh -v -T -i /var/lib/jenkins/.ssh/id_rsa nepton@xxx
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to xxx [xx.xxx.xx.xxx] port 22.
debug1: Connection established.
debug1: identity file /var/lib/jenkins/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /var/lib/jenkins/.ssh/id_rsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA xxx
debug1: Host 'xxx' is known and matches the ECDSA host key.
debug1: Found key in /var/lib/jenkins/.ssh/known_hosts:7
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /var/lib/jenkins/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1: Authentications that can continue: publickey,password
debug1: No more authentication methods to try.
Permission denied (publickey,password).
Build step 'Execute shell' marked build as failure
Como você diz nos comentários, não está usando a chave que você deseja. Você pode apontar a chave correta assim:
ssh -T -i /path/to/real/id_rsa nepton@xxx
Eu tive esse mesmo problema e encontrei uma solução que pode estar relacionada aqui. Se o sistema para o qual você está tentando executar o SSH estiver atrás de um balanceador de carga (ou algo semelhante), é possível que algumas vezes seu SSH seja bem-sucedido e, às vezes, falhará se as máquinas que estão sendo balanceadas não tenha um diretório pessoal compartilhado (ou pelo menos suas informações de .ssh, como a chave pública).
Do seu lado, parecerá que você está fazendo login em um único host, mas na verdade é intermitentemente um host real diferente, o que poderia explicar esse comportamento estranho.