Как получить правильный файл ключа формата для 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