Как получить правильный файл ключа формата для Jenkins CLI?

Так что я работаю с Jenkins, и мне нужно использовать CLI Jenkins, но я не могу понять аутентификацию.

Я следовал за их довольно коротким описанием здесь: https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+CLI котором говорилось, что мне нужно конвертировать мой файл.ppk из Putty в формат openssh. Они связывают вас с этим постом здесь. Как преобразовать пары ключей SSH, сгенерированные с помощью PuttyGen(Windows), в пары ключей, используемые ssh-agent и KeyChain(Linux), и я следовал этим инструкциям и пробовал сгенерированный файл, но в итоге получаю файл, который состоит из одной строки и выглядит так:

ssh-rsa [KEY]

Когда я использую этот файл с CLI Jenkins, я получаю эту ошибку:

Exception in thread "main" java.io.IOException: Invalid PEM structure, '-----BEGIN...' missing
at com.trilead.ssh2.crypto.PEMDecoder.parsePEM(PEMDecoder.java:138)
at com.trilead.ssh2.crypto.PEMDecoder.decode(PEMDecoder.java:313)
at hudson.cli.PrivateKeyProvider.loadKey(PrivateKeyProvider.java:143)
at hudson.cli.PrivateKeyProvider.loadKey(PrivateKeyProvider.java:126)
at hudson.cli.PrivateKeyProvider.readFrom(PrivateKeyProvider.java:107)
at hudson.cli.CLI._main(CLI.java:440)
at hudson.cli.CLI.main(CLI.java:387)

Я действительно совсем не знаком с ssh-ключами и некоторое время безуспешно искал. Может ли кто-нибудь рассказать мне, как перевести мой файл.ppk в правильный формат для использования с CLI Jenkins? Спасибо!

1 ответ

Вы должны сгенерировать открытый ключ SSH на своем компьютере и объявить этот ключ SSH на своем сервере Jenkins.

Чтобы создать открытый ключ на вашем компьютере (без ключевой фразы):

ssh-keygen -t rsa

Расположение по умолчанию для вашего открытого ключа:

/Users/your.user/.ssh/id_rsa.pub

Скопируйте ваш открытый SSH-ключ (ssh-rsa XXXXXXXX your.email@domain.com).

Затем перейдите на сервер Jenkins и отредактируйте информацию о пользователе Jenkins (в правом верхнем углу, нажав на свое имя пользователя).

Перейдите в раздел "Открытые ключи SSH" и вставьте свой открытый ключ.

Вы должны иметь доступ к вашему серверу Jenkins с помощью CLI.

Я протестировал эту конфигурацию на своем сервере Jenkins, и она работает.

brunolavit@MBP ~/Downloads$ java -jar jenkins-cli.jar -s http://myjenkinsserver.mydomain.com:8080/ version
1.577
Другие вопросы по тегам