Невозможно подключиться к bitbucket через s sh в jenkins - PullRequest
2 голосов
/ 19 апреля 2020

Я пытаюсь создать тег через Jenkinsfile, а затем отправляю его в удаленный репозиторий, подключенный через s sh.

Для справки:

Использование одного конвейера в Jenkins.

У меня есть настройка webhooks в bitbucket, которая запускает сборку в Jenkins всякий раз, когда я набираю код sh. Работает, если я подключаюсь через https.

Я уже сгенерировал s sh ключей, хранящихся локально. Эти клавиши работают, когда я работаю над кодом (pull / pu sh) через мой ide.

Используя этот же ключ s sh (таким образом, без изменений для ключа publi c в bitbucket), добавили закрытый ключ в Jenkins через Credentials. Магазин называется Jenkins, Domain is Global. Обратитесь к снимку экрана с настройкой моих учетных данных.

enter image description here

Но когда я пытаюсь настроить хранилище с помощью s sh, я получаю следующую ошибку:

Не удалось подключиться к хранилищу: команда "git .exe ls-remote -h - git@bitbucket.org: myname / jenproject. git HEAD" вернула код состояния 128: stdout: stderr: ключ загрузки "C: \ Windows \ TEMP \ jenkins-gitclient-ssh145544752032398406.key ": неверный формат git@bitbucket.org: доступ запрещен (publickey). Неустранимый: Не удалось прочитать из удаленного хранилища.

Пожалуйста, убедитесь, что у вас есть правильные права доступа, и хранилище существует.

enter image description here

Похоже, что он не читает из правильного места. Могу ли я получить помощь по этому вопросу. Нужны ли дополнительные настройки? Следовал инструкциям и видео-гидам, и было предложено настроить ключи s sh, которые есть у меня. Пожалуйста посоветуй. Спасибо.

1 Ответ

1 голос
/ 19 апреля 2020

invalid format ошибка в Jenkins может возникнуть, если вы неправильно вставили свой закрытый ключ в раздел учетных данных Jenkins. Убедитесь, что вы вставляете полное содержимое файла закрытого ключа, как показано ниже:

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFQAAAAdz
nYr+I/KWGeCBrl+y5kGNkOy68aUC1BMRGecfQ773DQxLVrdvDTrVD3K3fDMKvD3a
70e67IyiWZP7Ti83NvsZNxZ2KmBMc/qh0YsQeyvWvOxOM9IRqWAF63ZNF/ShJv9G
...
...
...
m/VXqS6KmjemlbYbcrGaEkH5eXhT+gW7eQr7oEouHwAAAIEArUSTb8Z6+D3DbMFF
mf9YRulDVHwU5aCFQMCGkI1Kx7h2FQcOgqhmJAlthMOdzlP5wVC6pbBug6sT9f6H
xO8RbjNHwXMDl3QKsHCNcIy0Uj0AAAAHc2FwaWVudAECAwQF
-----END OPENSSH PRIVATE KEY-----

Как видно из приведенного выше примера, он должен включать в себя как -----BEGIN OPENSSH PRIVATE KEY-----, так и -----END OPENSSH PRIVATE KEY----- часть. , Не обрезайте ничего, включая тире (-)

. После указанных выше изменений, если вы получаете ошибку git@bitbucket.org: Permission denied (publickey), убедитесь, что вы используете Jenkins с тем же пользователем, с которым вы ' Вы можете успешно выполнить команду (ssh -vT git@bitbucket.org) из командной строки (Git Bash в вашем случае). Чтобы сделать это, следуйте инструкциям, объясненным здесь

Обобщая это также здесь:

1. Run > 'services.msc' (Enter)
2. Select Jenkins service. Right-click and select Properties
3. Click on 'Log On' tab
4. Select user 'X' and provide credentials
5. Restart Jenkins
...