- 22, Oct 2024
- #1
Я пытаюсь настроить конвейер jenkins для проверки моего кода IaC, для этого я бы хотел, чтобы jenkins клонировал (размещенный) репозиторий gitlab, для этой цели я настраиваю учетные данные, используя имя пользователя/тип ключа, я использовал пользователя jenkins + a сгенерированный ключ rsa (для простоты один и тот же ключ на ведущем и ведомом устройствах).
При входе в систему ведущего или ведомого я могу git clone, используя следующую команду и результат:
Oct 8 11:49:23 l-gitlab1 sshd[18490]: Failed password for git from 172.27.200.46 port 56750 ssh2
Oct 8 11:49:23 l-gitlab1 sshd[18490]: Connection closed by 172.27.200.46 port 56750 [preauth]
Я вижу правильную запись в журнале аутентификации на экземпляре gitlab, в которой говорится, что аутентификация по открытому ключу была принята.
НО, когда я запускаю конвейер (который использует те же учетные данные), он терпит неудачу с этим сообщением:
Cloning the remote Git repository
Honoring refspec on initial clone
Cloning repository [email protected]:salt/salt_states.git
> git init /home/jenkins/workspace/salt_build_test # timeout=10
Fetching upstream changes from [email protected]:salt/salt_states.git
> git --version # timeout=10
using GIT_SSH to set credentials jenkins user's key (same key on master and slave(s))
> git fetch --tags --progress -- [email protected]:salt/salt_states.git +refs/remotes/origin/dev # timeout=20
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Command "git fetch --tags --progress -- [email protected]:salt/salt_states.git +refs/remotes/origin/dev" returned status code 128:
stdout:
stderr: Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Журнал аутентификации gitlab показывает, что при аутентификации пытались использовать режим аутентификации по паролю, а не по открытому ключу. ...
root@jenkins-slave-1 [~]: su - jenkins
jenkins@jenkins-slave-1:~$ cd /tmp/
jenkins@jenkins-slave-1:/tmp$ git clone [email protected]:salt/salt_states.git
Cloning into 'salt_states'...
remote: Enumerating objects: 1177, done.
remote: Counting objects: 100% (1177/1177), done.
remote: Compressing objects: 100% (483/483), done.
remote: Total 1177 (delta 676), reused 1153 (delta 665)
Receiving objects: 100% (1177/1177), 1.64 MiB | 0 bytes/s, done.
Resolving deltas: 100% (676/676), done.
jenkins@jenkins-slave-1:/tmp$
Есть идеи о том, что я делаю неправильно?
[Редактировать]
Я добавил скриншот, так как мое объяснение не очень понятно :(