Конвейер Jenkins не может клонировать git, используя плагин sshagent? - PullRequest
1 голос
/ 25 января 2020

Jenkins v2.164.3, s sh плагин агента 1.19

Я создал новый узел сборки Ubuntu, названный им test-fleet произвольно. У меня есть следующий файл в узле

/home/ubuntu/.gitconfig
------------------------
[user]
(tab)name = myUser
(tab)email = myUser@myemail.com

$ ls -al .gitconfig
-rw-r--r-- 1 ubuntu ubuntu   58 Jan 25 04:27 .gitconfig

Теперь у меня есть конвейер Jenkins, который делает это

node('test-fleet') {
   stage('test git') {
     sshagent(credentials: ['myUser-creds']) {
       sh """
          export GIT_SSH_COMMAND=\"ssh -v\"
          git ls-remote git@bitbucket.org:project/myrepo.git
       """
     }
   }
}

Я получаю это в консоли моей работы

[ssh-agent] Using credentials myUser-creds (Bitbucket credentials)
[ssh-agent] Looking for ssh-agent implementation...
[ssh-agent]   Exec ssh-agent (binary ssh-agent on a remote machine)
SSH_AUTH_SOCK=/tmp/ssh-V4G1oYutEMCW/agent.16446
SSH_AGENT_PID=16448
Running ssh-add (command line suppressed)
ssh-agent
Identity added: /home/jenkins/workspace/Utilities/Playground/test-ec2-fleet-ssh@tmp/private_key_2248848783998450720.key (/home/jenkins/workspace/Utilities/Playground/test-ec2-fleet-ssh@tmp/private_key_2248848783998450720.key)
Cloning into 'myrepo'...

+ git ls-remote git@bitbucket.org:project/myrepo.git
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to bitbucket.org [18.205.93.2] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/ubuntu/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/ubuntu/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/ubuntu/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/ubuntu/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/ubuntu/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/ubuntu/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/ubuntu/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/ubuntu/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
debug1: Remote protocol version 2.0, remote software version conker_d603cef0bf app-133
debug1: no match: conker_d603cef0bf app-133
debug1: Authenticating to bitbucket.org:22 as 'git'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256@libssh.org
debug1: kex: host key algorithm: ssh-rsa
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ssh-rsa SHA256:zzXQOXSRBEiUtuE8AikJYKwbHaxvSc0ojez9YXaGp1A
debug1: read_passphrase: can't open /dev/tty: No such device or address
Host key verification failed.
fatal: Could not read from remote repository.

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

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

Любые подсказки, как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 25 января 2020

Прежде всего, проверьте, какой пользователь владеет Jenkins. Вы можете узнать это, указав владельца каталога установки jenkins (по умолчанию / var / lib / jenkins). Затем войдите в систему с этим пользователем и проверьте папку .s sh для этого пользователя. Поскольку Дженкинс использует S SH для оформления заказа, основываясь на этом ответе здесь , у вас должна быть проблема в $ HOME / .ssh / known_hosts. Следуйте инструкциям по предоставленной ссылке для правильного пользователя, запустившего jenkins , чтобы заставить git оформить заказ. Проблема в том, что myUser на самом деле не имеет хранилища s sh, чтобы можно было проверить ключи s sh. Либо создайте myUser на своем компьютере и добавьте папку .ssh, либо используйте другого пользователя.

0 голосов
/ 25 января 2020

Сначала проверьте, работает ли тот же ключ при выполнении git ls-remote git@bitbucket.org:project/myrepo.git в сеансе с использованием того же пользователя, что и тот, в котором запущен Jenkins.

И убедитесь, что myUser-creds является действительной парольной фразой (не пароль: пароль) защита секретного ключа S SH. Что касается S SH, то здесь нет «учетных данных», как в имени пользователя / пароле.

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