2017-06-19 4 views
2

So versuche ich, einen SSH-Schlüssel für Jenkins einzurichten. Aus irgendeinem Grund bin ich immer:Berechtigung verweigert (publickey) beim Versuch, SSH zu GIT von einem Slave-Knoten

Permission denied (publickey). 

Der vollständige Stack-Trace ist:

[[email protected] .ssh]$ ls 
authorized_keys id_rsa id_rsa.pub known_hosts 
[[email protected] .ssh]$ ssh -vT [email protected] 
OpenSSH_6.6.1, OpenSSL 1.0.1k-fips 8 Jan 2015 
debug1: Reading configuration data /etc/ssh/ssh_config 
debug1: /etc/ssh/ssh_config line 56: Applying options for * 
debug1: Connecting to git.viasat.com [xx.xx.xxx.xx] port 22. 
debug1: Connection established. 
debug1: identity file /home/jenkins/.ssh/id_rsa type 1 
debug1: identity file /home/jenkins/.ssh/id_rsa-cert type -1 
debug1: identity file /home/jenkins/.ssh/id_dsa type -1 
debug1: identity file /home/jenkins/.ssh/id_dsa-cert type -1 
debug1: identity file /home/jenkins/.ssh/id_ecdsa type -1 
debug1: identity file /home/jenkins/.ssh/id_ecdsa-cert type -1 
debug1: identity file /home/jenkins/.ssh/id_ed25519 type -1 
debug1: identity file /home/jenkins/.ssh/id_ed25519-cert type -1 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_6.6.1 
debug1: Remote protocol version 2.0, remote software version libssh-0.7.0 
debug1: no match: libssh-0.7.0 
debug1: SSH2_MSG_KEXINIT sent 
debug1: SSH2_MSG_KEXINIT received 
debug1: kex: server->client aes128-ctr hmac-sha1 none 
debug1: kex: client->server aes128-ctr hmac-sha1 none 
debug1: kex: ecdh-sha2-nistp256 need=20 dh_need=20 
debug1: kex: ecdh-sha2-nistp256 need=20 dh_need=20 
debug1: sending SSH2_MSG_KEX_ECDH_INIT 
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY 
debug1: Server host key: ECDSA aa:f3:39:39:58:2b:61:ad:e8:d3:7a:f2:d2:e9:dd:7a 
debug1: Host 'git.xxxxxx.com' is known and matches the ECDSA host key. 
debug1: Found key in /home/jenkins/.ssh/known_hosts:3 
debug1: ssh_ecdsa_verify: signature correct 
debug1: SSH2_MSG_NEWKEYS sent 
debug1: expecting SSH2_MSG_NEWKEYS 
debug1: SSH2_MSG_NEWKEYS received 
debug1: SSH2_MSG_SERVICE_REQUEST sent 
debug1: SSH2_MSG_SERVICE_ACCEPT received 
debug1: Authentications that can continue: publickey 
debug1: Next authentication method: publickey 
debug1: Offering RSA public key: /home/jenkins/.ssh/id_rsa 
debug1: Authentications that can continue: publickey 
debug1: Trying private key: /home/jenkins/.ssh/id_dsa 
debug1: Trying private key: /home/jenkins/.ssh/id_ecdsa 
debug1: Trying private key: /home/jenkins/.ssh/id_ed25519 
debug1: No more authentication methods to try. 
Permission denied (publickey). 

Ich habe den SSH-Schlüssel, wie mein Benutzer in git auch einrichten.
Ich lief:

[[email protected] .ssh]$ ssh-add -l 
4096 9e:93:0c:12:4c:74:a6:e4:f0:eb:a1:28:d4:44:46:71 /home/jenkins/.ssh/id_rsa (RSA) 

auf meinem Slave-Knoten und es entsprach den einen, der in git geladen wurde.
Ich habe auch eine Kopie dieses Schlüssels in meine autorisierte Schlüsseldatei kopiert.
Haben Sie schon eine Weile mit diesem Rat gespielt, ist jeder Rat hilfreich.

Antwort

2

Erster Versuch einen SSH-Schlüssel ohne Passwort generieren: Auf diese Weise müssen Sie nicht mit ssh-add kümmern.

ssh-keygen -t rsa -C "key for xxx access" -q -P "" 

(keine Notwendigkeit für Kitt as seen in "AWS Troubleshooting Instances Connecting")
(keine Notwendigkeit for the console, which creates ppk/pem ssh keys)

Sicherstellen, dass die permissions are correct, both on the client and server side, regarding ssh.

Vergewissern Sie sich, kopiert ordnungsgemäß den öffentlichen Schlüssel auf dem Server:

~/ddennis/.ssh/authorized_keys 

(als eine durchgehende Linie)


Danach, wenn ssh -Tv funktioniert, aber Jenkins selbst nicht funktionieren, weil Jenkins nicht mit demselben Konto läuft und nicht nach dem gleichen Satz von SSH-Schlüsseln sucht.

+0

So schien es zu beheben. Ich muss eine Erlaubnis sein. Aber aus irgendeinem Grund auf Jenkins bekomme ich immer noch den Statuscode 128: stdout: stderr: Berechtigung verweigert (publickey). fatal: Konnte nicht vom Remote-Repository lesen. Aber es zieht den Code und baut erfolgreich. Wenn Sie einen Einblick darauf haben. Scheint sehr komisch für mich. –

+0

@DavidDennis Wenn ssh -Tv funktioniert, aber Jenkins selbst nicht funktioniert, liegt das meistens daran, dass Jenkins nicht mit demselben Konto läuft und nicht nach dem gleichen Satz von ssh-Schlüsseln sucht. – VonC

+0

das ist die Antwort, nach der ich gesucht habe. Vielen Dank. –

Verwandte Themen