Перед тем, как мгновенно пометить это как возможный дубликат пожалуйста, прочитайте весь текстдоступа SSH к Github: оболочки хорошо, Дженкинс не удается
TLDR: Я пытаюсь настроить Дженкинс, чтобы читать частные Репозиторий Github. Когда я использую учетные данные jenkins с username/password
, он работает, когда я использую учетные данные jenkins с private key
, это не так, и я получаю ошибку «неправильное имя пользователя/пароль».
Полное описание:
- У меня есть Дженкинс 2,5, установленные на Apache-8 котом, Дженкинс работает под пользователем
tomcat8
. Также установлены плагин Credential (2.1.4), плагин Git client (1.19.6), Gitplugin (2.5.2), плагин Github API (1.76), плагин GitHub (1.19.2), плагин учетных данных SSH (1.12). Git работает в версии 2.1.4 - Я создал SSH-ключи с пустым паролем для пользователя tomcat8 [вошел как tomcat8 через
sudo -su tomcat8
] - Я добавил открытый ключ к закрытому Github хранилище
- Я создал Дженкинс полномочие
ssh username with private key
с глобальной областью действия, имя пользователяtomcat8
, пустой пароль и полный закрытый ключом от-----BEGIN RSA PRIVATE KEY-----
к-----END RSA PRIVATE KEY-----
- I'v создал Дженкинс creditals «имя пользователя/пароль» с простым именем пользователя и passwort учетной записи github.
Когда я вхожу в систему пользователя
tomcat8
и проверяю подлинность github через оболочку с помощью командыssh -T [email protected]
Я получаю правильный вывод. Это означает, что мой аутентификации с ключом против GitHub работаетtomcat8 @ CI (справа): ~/.ssh $ SSH -T [email protected] Привет GitHub-имя пользователя! Вы успешно прошли аутентификацию, но GitHub не предоставляет доступ к оболочке.
Венна Теперь я настроить мой Дженкинс работа: repository URL: https://github.com/repoownername/reponame.git
и использовать имя пользователя/Passwort-верительных доступ прекрасен. Но когда я использую SSH-учетные данные аутентификации failes с
Не удалось подключиться к хранилищу: Команда «мерзавец -c core.askpass = True л.с-дистанционные -h https://github.com/repoownername/reponame.git ГОЛОВА» возвращается код состояния 128: стандартный вывод: stderr: remote: Неверное имя пользователя или пароль. со смертельным исходом: Ошибка аутентификации для '' https://github.com/repoownername/reponame.git
Дополнительная информация При запуске сборки с именем пользователя/пароль учетных
мерзавец конфигурации remote.origin1.url https://github.com/repoownername/reponame.git # таймаут = 10 Fetching вверх по течению изменяется от https://github.com/repoownername/reponame.git с использованием .gitcredentials для установки учетных данных git config --local credential.username github-username # timeout = 10 git config --local credential.helper store --file =/tmp/tomcat8-tomca T8-TMP/git1018128562913260002.credentials # timeout = 10 git -c core.askpass = true fetch --tags --progress https://github.com/repoownername/reponame.git + refs/heads/: refs/remotes/origin1/ git config --local --remove-section credential # timeout = 10
Когда я использую учетные данные SSH, я получаю ошибку, упомянутую выше.
Так что мой вопрос теперь: Как я могу успешно использовать мои SSH-учетные данные вместо имени пользователя/пароля
Некоторые учебники я проверил:
- 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/