加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

身份验证 – 使用Bitbucket管道从docker实例SSH到staging机器

发布时间:2020-12-16 03:43:16 所属栏目:安全 来源:网络整理
导读:使用新的Bitbucket Pipelines功能,如何从它旋转的docker容器中SSH到我的staging box? 我的管道中的最后一步是一个.sh文件,它在登台时部署必要的代码,但由于我的登台框使用公钥认证而不知道docker容器,因此SSH连接被拒绝. 无论如何不通过SSH使用密码身份验证

使用新的Bitbucket Pipelines功能,如何从它旋转的docker容器中SSH到我的staging box?

我的管道中的最后一步是一个.sh文件,它在登台时部署必要的代码,但由于我的登台框使用公钥认证而不知道docker容器,因此SSH连接被拒绝.

无论如何不通过SSH使用密码身份验证来解决这个问题(通过不断选择通过公钥进行身份验证,这也导致了我的问题.)?

最佳答案
Bitbucket管道可以使用您创建的Docker镜像,它具有在构建期间运行的ssh客户端设置,只要它托管在可公开访问的容器注册表上即可.

创建一个Docker镜像.

在某处可以使用ssh密钥Create a Docker image.图像还需要在容器将运行的用户下具有host key for your environment(s) saved.这通常是root用户,但如果您在Dockerfile中有USER命令,则可能会有所不同.

您可以复制已填充的已知主机文件,或者在映像构建时动态配置文件:

RUN ssh-keyscan your.staging-host.com

发布图像

将您的图像发布到可公开访问但私有的注册表.您可以host your own或使用像Docker Hub这样的服务.

配置管道

Configure pipelines to build with your docker image.

如果您使用Docker Hub

image:
  name: account-name/java:8u66
  username: $USERNAME
  password: $PASSWORD
  email: $EMAIL

或者您自己的外部注册表

  name: docker.your-company-name.com/account-name/java:8u66

限制主机上的访问权限

您不希望使用ssh密钥访问遍布全球的主机,因此我还将这些部署ssh密钥的访问权限限制为only run your deploy commands.

您的登台主机上的authorized_keys文件:

command="/path/to/your/deploy-script",no-agent-forwarding,no-port-forwarding,no-X11-forwarding ssh-dss AAAAC8ghi9ldw== deploy@bitbucket

不幸的是bitbucket don’t publish an IP list to restrict access to因为他们使用共享基础设施来管道.如果它们恰好在AWS上运行,那么亚马逊就会执行publish IP lists.

from="10.5.0.1",command="",no-... etc

还要记得和他们约会,不时让他们过期.我知道ssh键不强制执行日期,但无论如何都要做到这一点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读