使用我自己的密钥对SSH守护程序服务进行Docker化

时间:2014-11-04 03:28:41

标签: vagrant docker vagrantfile

我正在构建基于ubuntu14.04的映像,尝试在容器上启用ssh。我正在按照教程:https://docs.docker.com/examples/running_ssh_service/

但本教程仅展示如何使用密码进行ssh,我想使用自己的密钥来ssh到容器而不是密码。所以我可以在vagrantfile中做这样的事情(Docker作为提供者,并使用ansible来提供):

  config.ssh.username = "root"
  config.ssh.private_key_path = "~/.ssh/my_key"

2 个答案:

答案 0 :(得分:0)

我也有这个问题。

不幸的是,我没有一个简单的答案,但为此使用标准的ShutIt库:

https://github.com/ianmiell/shutit/blob/master/library/ssh_key/ssh_key.py

将ssh密钥复制到主机构建时。

它也没有显示在图像历史记录中,因此您不需要展平图像;你可以使用ssh_key模块的finalize钩子在构建结束时删除它(默认,但可配置)。

允许我根据需要将其与其他模块结合使用。例如,它取决于ansible模块,例如:

https://github.com/ianmiell/shutit/blob/master/library/ansible/ansible.py#L64

和library / puppet.py和library / hadoop / hadoop.py:

如果您需要帮助,请直接与我联系。

答案 1 :(得分:0)

你需要ssh吗?

请注意非常重要的原因没有这样做: http://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/

您也可以从docker v1.3开始向正在运行的容器中注入新进程。 例如如果你可以ssh到主机上,那么 docker exec -it myContainer / bin / bash

会将终端附加到正在运行的容器中......

但是你可以看看我之前做过的那个...... https://registry.hub.docker.com/u/afolarin/ubuntu_ssh/