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

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

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

ssh-rsa [KEY]

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

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 в правильный формат для использования с интерфейсом командной строки Jenkins? Спасибо!


person David C    schedule 01.05.2015    source источник


Ответы (1)


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

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

ssh-keygen -t rsa

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

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

Скопируйте свой открытый SSH-ключ (ssh-rsa XXXXXXXX [email protected]).

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

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

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

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

brunolavit@MBP ~/Downloads$ java -jar jenkins-cli.jar -s http://myjenkinsserver.mydomain.com:8080/ version
1.577
person Bruno Lavit    schedule 04.05.2015
comment
Это должно работать, но это не так. Ошибка все еще возникает - person Br.Bill; 18.04.2020