向私有gitlab repo动态添加和删除ssh密钥

向私有gitlab repo动态添加和删除ssh密钥,gitlab,gitlab-ci,packer,Gitlab,Gitlab Ci,Packer,我需要由gitlab-ci.yml(运行ubuntu14.04)创建的VM来安装packer,然后访问并下载我的整个私有gitlab repo,或者从该repo中下载一个单独的文件 首先,我尝试在创建容器和vm的脚本中创建一个ssh密钥,然后将.pub远程添加到gitlab repo中。但是,我忘记了新创建的容器在构建完成后会被丢弃。这意味着每次创建容器时都会生成新的密钥 我是否可以动态地向私有GitLab repo添加和删除密钥?要使用GitLab CI Docker容器中的SSH密钥访问Gi

我需要由gitlab-ci.yml(运行ubuntu14.04)创建的VM来安装packer,然后访问并下载我的整个私有gitlab repo,或者从该repo中下载一个单独的文件

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


我是否可以动态地向私有GitLab repo添加和删除密钥?

要使用GitLab CI Docker容器中的SSH密钥访问GitLab服务器上的其他存储库,请执行以下操作:

  • 生成SSH密钥对(一次)
  • 将公钥添加为应授予该密钥访问权限的每个位置
  • 通过执行以下操作将密钥注入容器:
    • 将私钥添加为名为
      SSH\u private\u key
    • 将以下内容添加到
      .gitlab ci.yml
      文件中的
      前脚本中
  • 将GitLab服务器SSH主机密钥注入容器:
    • 将主机密钥添加为名为
      GITLAB\u host\u key的秘密变量
    • 将以下内容添加到
      .gitlab ci.yml
      文件中的
      前脚本中
在脚本之前:
#添加SSH私钥和GitLab服务器主机密钥
-eval$(ssh代理-s)
-ssh add>/root/.ssh/known_hosts

要使用GitLab CI Docker容器中的SSH密钥访问GitLab服务器上的其他存储库,请执行以下操作:

  • 生成SSH密钥对(一次)
  • 将公钥添加为应授予该密钥访问权限的每个位置
  • 通过执行以下操作将密钥注入容器:
    • 将私钥添加为名为
      SSH\u private\u key
    • 将以下内容添加到
      .gitlab ci.yml
      文件中的
      前脚本中
  • 将GitLab服务器SSH主机密钥注入容器:
    • 将主机密钥添加为名为
      GITLAB\u host\u key的秘密变量
    • 将以下内容添加到
      .gitlab ci.yml
      文件中的
      前脚本中
在脚本之前:
#添加SSH私钥和GitLab服务器主机密钥
-eval$(ssh代理-s)
-ssh add>/root/.ssh/known_hosts

这就是我最终得到的结果(只是刚刚解决了它)。谢谢你,伙计!不客气。记住,对任何有帮助的答案都要投赞成票,并接受最能回答你问题的答案。这正是我最终得到的答案(只是刚刚解决了它)。谢谢你,伙计!不客气。记住对任何有帮助的答案都要投赞成票,并接受最能回答你问题的答案。
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