Дженкинс: какой правильный формат для закрытого ключа в учетных данных - PullRequest
0 голосов
/ 05 декабря 2018

Я создаю задание в Jenkins 2.152, работающее на Windows Server 2016, которое необходимо извлечь из репозитория git, размещенного на bitbucket.org.Я протестировал ключ ssh через git-bash, так что я знаю, что он работает, а парольной фразы нет.Когда я пытаюсь использовать тот же самый закрытый ключ с Jenkins, я получаю сообщение об ошибке.

Failed to connect to repository : Command "git.exe ls-remote -h 
git@bitbucket.org:mygroup/myrepo HEAD" returned status code 128:
stdout: 
stderr: Load key 
"C:\\Users\\JE~1\\AppData\\Local\\Temp\\ssh2142299850576289882.key": invalid format 
git@bitbucket.org: Permission denied (publickey). 
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Учетные данные настроены как

 scope: Global
 user: git
 Private Key -> Enter Directly -> copy and past - generated by ssh-keygen -t rsa in gitbash
 Passphrase: empty
 ID: empty
 description: bitbucket.org

Я заметил, что на другом сервере Windows Jenkinsзакрытый ключ имеет разное количество символов в строке

Кто-нибудь знает, каков ожидаемый формат закрытого ключа в учетных данных Jenkins?Или, может быть, я мог бы проверить что-то еще.

Любая помощь очень ценится.

Ответы [ 4 ]

0 голосов
/ 20 августа 2019

Каким-то образом я снова заработал, но реальные шаги, которые решают проблему, неясны.

Что я сделал, так это заново сгенерировал ключ ssh и поместил все в его расположение по умолчанию.Повторно загрузите открытый ключ, замените закрытый ключ в учетных данных, и он начнет работать.

0 голосов
/ 11 декабря 2018

В конце концов, я не смог найти способ, позволяющий вставлять закрытые ключи в учетные данные Jenkins.

Хотя это может быть общеизвестно для многих, я решил все же обойти это обходное решение.

Вот что я сделал в качестве обходного пути для извлечения своих личных репозиториев с Bitbucket.org:

  1. Войдите на свой хост Windows как пользователь, который запускает службу Jenkins.В моем случае Jenkins Service работает как выделенный пользователь, потому что мне нужно было получить доступ к сетевым ресурсам с правами записи только для этого пользователя.
  2. Откройте Git-bash и сгенерируйте ключи SSH с помощью команды ssh-keygen, принимающей все значения по умолчанию
  3. В Jenkins введите URL-адрес git repo как git@bitbucket.org: team_name / repo_name и оставьте учетные данные как None

Таким образом, Git и SSH смогут найтиКлючи SSH в расположении по умолчанию, обычно это c: \ Users \ username.ssh \

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 29 января 2019

Я также получил это сообщение об ошибке и в итоге обнаружил, что учетные данные Jenkins должны быть секретным ключом RSA, а не открытым ключом.Ниже приведены мои шаги по настройке Jenkins для клонирования из bitbucket:

  1. Добавление учетных данных в учетные данные Jenkins
   Kind: SSH username and private key
   Scope: Global
   Username: <my username in bitbucket>
   Private key: <Enter directly>
         -----BEGIN RSA PRIVATE KEY-----
         ......
         -----END RSA PRIVATE KEY-----
Создайте задание и настройте путь к хранилищу и учетные данные следующим образом:

enter image description here

0 голосов
/ 06 декабря 2018

Проверьте версию Git для Windows, которую вы используете: Начиная с 2.19.2 , она поставляется с OpenSSH v7.9p1 (от 7.7 до)

И ... openssh 7.8 просто изменил формат ssh-keygen по умолчанию, с классического PEM 64-символьного, на OPENSSH с 70 символами!

Только ssh-keygen -m PEM -t rsa -P "" -f afile сгенерирует старыйformat (-m PEM)

ssh-keygen(1):

записывать закрытые ключи формата OpenSSH по умолчанию вместо использования формата PEM OpenSSL.

Формат OpenSSH, поддерживаемый в выпусках OpenSSH с 2014 года и описанный в файле PROTOCOL.key в исходном выпуске, обеспечивает значительно лучшую защиту от подбора пароля в автономном режиме и поддерживает ключевые комментарии в закрытых ключах.
При необходимости, можно написать старые ключи в стиле PEM, добавив «-m PEM» к аргументам ssh-keygen при генерации или обновлении ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...