Bevor Sie dies sofort als mögliches Duplikat markieren Sie den gesamten TextSSH-Zugriff auf Github: shell in Ordnung, Jenkins nicht
TLDR lesen: Ich versuche, eine jenkins einzurichten einen privat zu lesen Github-Repository. Wenn ich jenkins Anmeldeinformationen mit username/password
verwende funktioniert es, wenn ich jenkins Anmeldeinformationen mit einem private key
es nicht verwende und ich bekomme einen "ungültigen Benutzernamen/Passwort" Fehler.
Ausführliche Beschreibung:
- Ich habe ein jenkins 2.5 installiert auf Apache-Tomcat 8, jenkins
tomcat8
unter dem Benutzer ausgeführt wird. Credential Plugin (2.1.4), Git Client Plugin (1.19.6), Gitplugin (2.5.2), Github API Plugin (1.76), GitHub Plugin (1.19.2), SSH Credential Plugin (1.12) sind ebenfalls installiert. Git ist in Version 2.1.4 läuft - ich ein SSH-Schlüsselpaar mit leerem Passwort erstellt habe für den Benutzer tomcat8 [angemeldet als tomcat8 über
sudo -su tomcat8
] - Ich habe den öffentlichen Schlüssel zum privaten Github hinzugefügt Repository
- ich habe ein jenkins Anmeldeinformationen erstellt
ssh username with private key
mit globaler Reichweite, Benutzernametomcat8
, leeres Passwort und die vollen privaten Schlüssel-----BEGIN RSA PRIVATE KEY-----
------END RSA PRIVATE KEY-----
- I'v ein jenkins creditals „Benutzername/Passwort“ mit der Ebene Benutzername erstellt und Passwort des GitHub Accounts.
Wenn ich mich in den Benutzer einloggen
tomcat8
und überprüfen Sie die Github-Authentifizierung über Shell mit dem Befehlssh -T [email protected]
bekomme ich die richtige Ausgabe. Das bedeutet, dass meine Authentifizierung mit dem Schlüssel gegen Github arbeitettomcat8 @ ci (rechts?): ~/.ssh $ ssh -T [email protected] Hallo Github-Benutzername! Sie haben sich erfolgreich authentifiziert, GitHub bietet jedoch keinen Shell-Zugriff.
If ich jetzt meine jenkins Job-Setup: repository URL: https://github.com/repoownername/reponame.git
und verwenden Sie den Benutzernamen/Passwort-Berechtigungsnachweis der Zugang in Ordnung ist. Aber wenn ich die ssh-Anmeldeinformationen die Authentifizierungs failes mit
Fehler beim Repository verbinden: Befehl "git -c core.askpass = true ls-remote -h https://github.com/repoownername/reponame.git HEAD" zurückgegebenen Statuscode 128: stdout: stderr: remote: Ungültiger Benutzername oder ungültiges Passwort. fatal: Authentifizierung fehlgeschlagen für 'https://github.com/repoownername/reponame.git'
Weitere Informationen Wenn ich einen Build mit dem Benutzernamen/Passwort Credentials
laufengit Config remote.origin1.url https://github.com/repoownername/reponame.git # timeout = 10 stromauf Fetching Änderungen von mit .gitcredentials zum Festlegen der Anmeldeinformationen git config --local credential.username github-username # timeout = 10 git config --local credential.helper speichern --file =/tmp/tomcat8-tomca t8-tmp/git1018128562913260002.Anmeldedaten # timeout = 10 git -c core.askpass = true fetch --tags --progress https://github.com/repoownername/reponame.git + refs/heads/: refs/remotes/origin1/ git konfig --local --trenove section credential # timeout = 10
Wenn ich die SSH-Anmeldeinformationen verwende, bekomme ich den oben genannten Fehler.
Also meine Frage ist jetzt: Wie kann ich meine SSH-Anmeldeinformationen erfolgreich anstelle von Benutzername/Passwort
Ich habe einige der Tutorials verwenden:
- https://help.github.com/articles/error-permission-denied-publickey/
- https://gist.github.com/misterbrownlee/3708738
- http://fourkitchens.com/blog/article/trigger-jenkins-builds-pushing-github
- https://nicolas.perriault.net/code/2011/setup-jenkins-github-private-repository-ubuntu/