动态添加和删除 ssh 密钥到私有 gitlab 存储库

int*_*tRG 0 packer gitlab gitlab-ci

我需要由 gitlab-ci.yml(运行 Ubuntu 14.04)创建的 VM 来安装打包程序,然后访问和下载我的整个私有 gitlab 存储库,或者只是来自该存储库的单个文件。

首先,我尝试在我的脚本中创建一个 ssh 密钥来创建容器和虚拟机,然后将 .pub 远程添加到 gitlab 存储库。但是我忘记了在构建完成后会丢弃新创建的容器。这意味着每次创建容器时都会生成新的密钥。

无论如何,我可以动态添加和删除私有 GitLab 存储库的密钥吗?

Jon*_*art 5

要在 GitLab CI Docker 容器中使用 SSH 密钥访问 GitLab 服务器上的其他存储库:

  • 生成 SSH 密钥对(一次)。
  • 在应授予该密钥访问权限的每个位置添加公钥作为部署密钥
  • 通过执行以下操作将密钥注入容器:
    • 私钥添加为名为的秘密变量SSH_PRIVATE_KEY
    • 将以下内容添加到before_script您的.gitlab-ci.yml文件中
  • 将 GitLab 服务器 SSH 主机密钥注入容器:
    • 将主机密钥添加为名为的秘密变量GITLAB_HOST_KEY
    • 将以下内容添加到before_script您的.gitlab-ci.yml文件中
before_script:
  # Add SSH private key and GitLab server host key
  - eval $(ssh-agent -s)
  - ssh-add <(echo "$SSH_PRIVATE_KEY")
  - mkdir -p /root/.ssh
  - echo "$GITLAB_HOST_KEY" >> /root/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)