gitlab-runner:本地执行时添加ssh密钥

pka*_*mol 5 git gitlab-ci gitlab-ci-runner

我正在尝试ci通过docker执行器在本地运行管道以进行调试:

gitlab-runner exec docker <job_name>
Run Code Online (Sandbox Code Playgroud)

在某个时间点,它需要克隆一个私有git存储库。

我正在使用gitlab 建议的典型配方。

variables:
    MY_PRIVATE_KEY: <my_private_key>

before_script:
  - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
  - eval $(ssh-agent -s)
  - ssh-add <(echo "$MY_PRIVATE_KEY")
  - mkdir -p ~/.ssh
  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
Run Code Online (Sandbox Code Playgroud)

但是,当尝试将密钥添加到代理时:

$ ssh-add <(echo "$MY_PRIVATE_KEY")
Enter passphrase for /dev/fd/63: Running after script...
ERROR: Job failed: exit code 1
FATAL: exit code 1 
Run Code Online (Sandbox Code Playgroud)

我确信我的钥匙上没有passphrase...

Ste*_*tel -1

您确定私钥内容设置正确吗?

echo $MY_PRIVATE_KEY尝试在之前添加ssh-add

还; 我建议通过Gitlab CI/CD 秘密注入它,而不是在你的.gitlab-ci.yml