Bitbucketpipe道如何设置ssh代理部署在远程服务器上

这是我想要实现的工作stream程:

  1. 提交代码
  2. bitbucketpipe道在我的公共docker镜像上运行testing
  3. bitbucketstream水线执行可靠的脚本部署在我的公共docker的形象

前2个步骤工作正常,但这里是问题:如何/我应该在哪里存储我的私钥,以便通过ssh代理ssh到我的远程服务器?

我有点不愿意将私钥存储在Pipeline env设置中,因为其他人都可以通过pipe理访问repo来查看它。

有一个类似的问题在这里问,但答案build议在docker上设置密钥,并使用私人回购,这是有点不同,我的。

您现在可以在pipe道设置下设置SSH密钥,以便您不需要使用环境variables并将其复制到容器中的某些位置。 私钥没有显示出来。

Settings -> Pipelines -> SSH keys

您需要获取生产容器known_hosts文件的公钥。

我已经build立了一个类似的过程,并使用pipe道环境variables,有一个checkbox,以确保值,所以你不必担心其他人查看它。

设置很简单:

  • Base64对私钥进行编码并将其存储在Bitbucket中的环境variables中
  • 将“my_known_hosts”文件提交到包含远程主机公共SSH密钥的代码库中。

然后在你的bitbucket-pipelines.yml文件中设置known_hosts和key:

 - mkdir -p ~/.ssh - cat my_known_hosts >> ~/.ssh/known_hosts - (umask 077 ; echo $MY_SSH_KEY | base64 --decode > ~/.ssh/id_rsa) 

完整的文档可在这里https://confluence.atlassian.com/bitbucket/access-remote-hosts-via-ssh-847452940.html