Berechtigung verweigert (öffentlicher Schlüssel) während des Abrufs von GitHub mit Jenkins-Benutzer unter Ubuntu
Hier ist mein setup:
- Jenkins läuft auf meinem linux-Rechner als 'jenkins' user.
- Ich generiert haben, wird ein ssh-key-pair-Mädchen, wie beschrieben in Linux - Setup-Gitfür die 'jenkins' user.
- Wenn ich
sudo su jenkins
und versuchenssh -vT [email protected]
bin ich immer gefragt, meine passphrase, aber ich bin immer irgendwann authenicated. (die verbose-option zeigt an, welche Taste wird verwendet, u.a.). - Ich könnte mein Klon repo von GitHub verwenden jenkins:
Folgendermassen:
jenkins@alpm:~/jobs/test git/workspace$ git pull
Enter passphrase for key '/var/lib/jenkins/.ssh/id*_rsa':
Already up-to-date.
Bis zu diesem Punkt habe ich folgte den Anweisungen auf das schreiben. Das problem ist, dass die Jenkins-job schlägt fehl mit der folgenden Fehlermeldung:
status code 128:
stdout:
stderr: Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Dies ist die gleiche Fehlermeldung wie ich bekommen, wenn ich Tippfehler die passphrase (aber natürlich, Jenkins nicht fragt mich nach der passphrase). Auf den folgenden Seiten:
zeigen mir, dass ssh-agent kann helfen, erinnern Sie die passphrase ein, und das tut er, wenn ich mit meinem eigenen Benutzer, aber nicht die jenkins id. Beachten Sie, dass während der Ausführung als mein normaler Benutzer ergibt:
echo "$SSH_AUTH_SOCK"
/tmp/keyring-nQlwf9/ssh
Beim laufen den gleichen Befehl wie mein 'jenkins' liefert nichts (auch nicht die Erlaubnis verweigert)
Mein Verständnis des Problems ist, dass die passphrase wird nicht gespeichert.
Haben Sie eine Idee?
Soll ich starten Sie eine ssh-agent oder key-ring-manager für die jenkins-Benutzer? Wie?
Oder ist ssh forwarding geeignet, wenn die Weiterleitung auf die gleiche Maschine?
Jede heller Idee?
ps: ich habe nie sudo gitted
ich immer verwendet, jenkins oder mein Benutzerkonto (wie erwähnt, in dieser SO post - Ubuntu/GitHub SSH Key Problem)
InformationsquelleAutor der Frage pimajor | 2012-05-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da niemand schrieb die Antwort aus den Kommentaren für mehrere Monate, ich werde sehr schnell tun.
Gibt es 2 mögliche Probleme/Lösungen:
id_rsa erstellt mit falschen Benutzer
Erstellen id_rsa als die jenkins-Benutzer (siehe hudson kann nicht Holen aus dem git-repository)
Verlassen passphrase leer
InformationsquelleAutor der Antwort Patrick Boos
Bekam ich dieses problem umgehen, indem einfach Sie die passphrase leer, wenn die Erstellung der Schlüssel.
InformationsquelleAutor der Antwort Marco Corona
Zusammenfassen, was getan werden muss, auf dem Jenkins-server:
Denken Sie daran:
ssh -vvv [email protected]
(Adresse ändern nach Ihren git-server)InformationsquelleAutor der Antwort Paul Podgorsek
Ich würde hinzufügen, dass, wenn Sie erstellt die keys von hand, Sie möglicherweise noch im Besitz von Ihnen und nicht lesbar jenkins, versuchen:
InformationsquelleAutor der Antwort stoyan
Zu überprüfen, sind die folgenden:
Nachdem alle Prüfungen -> versuchen ssh -vvv [email protected]
Versuchen Sie nicht zu tun, config in jenkins bis ssh funktioniert!
InformationsquelleAutor der Antwort Tim Long
Wenn Sie mit jenkins als service unter windows müssen Sie überprüfen, der Nutzer, die den Dienst ausführt. Wenn Sie den Schlüssel mithilfe des Benutzers "COMPUTERNAME\Benutzer", ändern Sie den service, damit die Benutzer bei der Ausführung kann es passen
InformationsquelleAutor der Antwort Filipe Rodrigues
Für Mac-Nutzer, das Problem kann gelöst werden durch entfernen der vorhandenen Schlüssel und die Schaffung von neuen Privaten und Öffentlichen Schlüssel, indem Sie die folgenden Schritte aus:
1.Entfernen Sie alle Öffentliche und Private Schlüssel sich an /Benutzer/Benutzername/.ssh
2.Entfernen Sie alle gespeicherten Anmeldeinformationen unter der Anmeldeinformationen Registerkarte in Jenkins.
3.Entfernen Sie die vorhandene Öffentlichen SSH-Schlüssel definiert in der Github-Repository-Einstellungen.
4.Erstellen Sie neue SSH-Schlüssel (privat und öffentlich: id_rsa und id_rsa.pub)indem Sie die folgenden Schritte aus https://confluence.atlassian.com/bitbucketserver/creating-ssh-keys-776639788.html#CreatingSSHkeys-CreatinganSSHkeyonLinux&MacOSX
5.Legen Sie die neu erstellten öffentlichen SSH-Schlüssel (id_rsa.pub) in Github oder eine entsprechende Repository-Einstellungen.
6.In Jenkins,erstellen neuer Anmeldeinformationenindem die private SSH-key(id_rsa) für Ihre Github-Benutzernamen.
7.Der Fehler sollte nun entfernt werden.
InformationsquelleAutor der Antwort DeveloperIOS
Schlüssel müssen generiert aus dem jenkins-Benutzer.
sobald der Schlüssel erzeugt ist, wird es Hinzugefügt werden soll einen ssh-Schlüssel im bitbucket oder github.
InformationsquelleAutor der Antwort blazehub