jenkins, qui ne peut pas le ssh à un serveur distant (clé - permission denied) mais qui fonctionne à partir de la cli
J'ai Jenkins en cours d'exécution sur ma machine locale à essayer de comprendre à distance ssh problème, je vais avoir sur un serveur. J'obtiens cette erreur permission denied qui indique un problème avec la clé, mais à partir du même compte d'utilisateur sur la coque, je peux certainement vous connecter.
Started by user anonymous
Building in workspace /Users/jgoodwin/jenkins/workspace/app
[postprocessor] $ /bin/sh -xe /var/folders/b0/h_wtmzss6cx11p6153y9h2cr0000gn/T/hudson4163212101874527747.sh
+ echo /Users/jgoodwin
/Users/jgoodwin
+ whoami
jgoodwin
+ ssh -i /Users/jgoodwin/.ssh/id_rsa remoteuser@server 'echo success'
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Build step 'Execute shell' marked build as failure
Finished: FAILURE
C'est courir à droite sur la coque:
Jasons-MacBook-Air:~ jgoodwin$ echo $HOME
/Users/jgoodwin
Jasons-MacBook-Air:~ jgoodwin$ whoami
jgoodwin
Jasons-MacBook-Air:~ jgoodwin$ ssh -i /Users/jgoodwin/.ssh/id_rsa remoteuser@server 'echo success'
success
Je suis assez perplexe - je l'ai fait un peu de travail avec l'hudson, dans le passé, et je ne pense pas que j'ai eu aucun problème à faire ce type de travail. L'erreur indique un problème avec les clés, mais ils sont clairement amende.
Edit:
Journal détaillé sur simple demande
OpenSSH_5.9p1, OpenSSL 0.9.8x 10 May 2012
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug1: Connecting to hostname [ip] port 22.
debug1: Connection established.
debug1: identity file /Users/jgoodwin/.ssh/id_rsa type 1
debug1: identity file /Users/jgoodwin/.ssh/id_rsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9
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: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA ed:d4:92:3f:33:bd:dd:b9:eb:d1:b2:19:4c:f1:70:e9
debug1: Host 'hostname' is known and matches the RSA host key.
debug1: Found key in /Users/jgoodwin/.ssh/known_hosts:6
debug1: ssh_rsa_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,gssapi-keyex,gssapi-with-mic
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/jgoodwin/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
debug1: read_passphrase: can't open /dev/tty: Device not configured
debug1: No more authentication methods to try.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Build step 'Execute shell' marked build as failure
Edit: tentative réussie ajouté 8/15
OpenSSH_5.9p1, OpenSSL 0.9.8x 10 May 2012
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug1: Connecting to hostname [ip] port 22.
debug1: Connection established.
debug1: identity file /Users/jgoodwin/.ssh/id_rsa type 1
debug1: identity file /Users/jgoodwin/.ssh/id_rsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9
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: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 40:bf:b5:74:1c:5f:b6:93:00:4b:ca:1d:fc:0f:39:ec
debug1: Host 'hostname' is known and matches the RSA host key.
debug1: Found key in /Users/jgoodwin/.ssh/known_hosts:3
debug1: ssh_rsa_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,gssapi-keyex,gssapi-with-mic
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/jgoodwin/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).
Authenticated to hostname ([54.226.250.218]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_CA.UTF-8
Last login: Thu Aug 15 13:09:32 2013 from 66.199.39.230
OriginalL'auteur JasonG | 2013-08-08
Vous devez vous connecter pour publier un commentaire.
Plusieurs raisons peuvent en être la cause du comportement, comme la mise en cache de clés avec agent /gestionnaire de trousseau, etc.
Je suggère d'utiliser l'argument-v pour comparer les 2 sorties:
Cela vous permettra de comparer ce qui se passe dans un plus verbeux. Si vous ne parvenez toujours pas à le résoudre, merci de poster votre verbose sorties à comparer.
Remarque: vous pouvez ajouter jusqu'à 3 v arguments pour augmenter le niveau de verbosité.
Mis à jour:
@JasonG De ce que je vois les détails de l'échec sont:
debug1: Offre clé publique RSA: /Users/jgoodwin/.ssh/id_rsa
debug1: le Serveur accepte la clé: pkalg ssh-rsa blen 279
debug1: key_parse_private_pem: PEM_read_PrivateKey échoué
debug1: lire PEM clé privée fait: type
debug1: read_passphrase: impossible d'ouvrir /dev/tty: l'Appareil n'est pas configuré
Il ressemble à votre clé a une phrase et la phrase de passe ne peut pas être saisi, car nous ne sommes pas dans un shell interactif. La ligne de commande à partir de votre shell standard peuvent bénéficier de la Keycahin qui serait 'tapez le mot de passe" pour vous.
Si vous pouviez générer le même niveau de verbosité pour la réussite de votre commande afin que nous puissions comparer...
J'ai ajouté le journal détaillé de la question, comme il est trop long pour tenir dans ici.
mise à jour de ma réponse que les commentaires ne sont pas bien mis en forme
Bam. Excellent. Je vais mettre à jour ma réponse.
Je n'ai pas de passphrase de la clé si
OriginalL'auteur coffeebreaks
Jenkins exécuter des scripts shell est légèrement différent avec en ligne de cmd sur l'environnement
il y a quelques environnement différence dans votre cas, que nous n'avons pas d'avis. comme le script initial, paramètre de chemin.
en plus de la méthode fournie par @coffeebreaks, essayez ci-dessous
env
OriginalL'auteur Larry Cai
Vérifier si le répertoire de base est chiffré :
http://gopukrish.wordpress.com/2013/04/24/ssh-cant-connect-authentications-that-can-continue-publickeygssapi-keyexgssapi-with-micpassword/
OriginalL'auteur Gopu
Dans ma situation, j'ai été en utilisant un trousseau de clés (comme @coffeebreaks suggéré) qui était en cours d'installation quand je l'ai acheté sur le jenkins utilisateur .bashrc fichier. Malheureusement, le jenkins backend ne semble pas à la source de ce fichier comme un standard du shell de connexion ne.
La solution est d'ajouter le code suivant avant la scp d'appel dans l'Jenkins pipeline:
OriginalL'auteur java-addict301