如何在我的Docker机器中保存RSA KEY?

时间:2016-03-26 05:41:42

标签: docker docker-machine

每当我重新启动它时,~/.ssh/my_id_rsa创建的虚拟机中的

docker-machine create都会消失。我在docs.docker.com上阅读过文档,但是我找不到有关此问题的信息。

我的主机是Mac(El Capitan),而docker-machine的版本如下:

$ docker-machine version
docker-machine version 0.6.0, build e27fb87

我使用以下选项创建了我的虚拟机:

$ docker-machine create --driver virtualbox dev

有关如何解决此问题的建议吗?我应该在哪里看看?

更具体地说,我想知道如何避免这个问题:

(host) $ docker-machine create --driver virtualbox dev
(host) $ docker-machine ssh dev
(dev) $ ssh-keygen
...
(dev) $ ls ~/.ssh
authorized_keys   authorized_keys2  id_rsa            id_rsa.pub
(dev) $ logout
(host) $ docker-machine restart dev
(host) $ docker-machine ssh dev
(dev) $ ls ~/.ssh
authorized_keys   authorized_keys2

哪里是“id_rsa”和“id_rsa.pub”?

1 个答案:

答案 0 :(得分:2)

通常,我没有指定任何关于ssh键的内容:docker-machine~/.docker/machine/machines/<amachine>/

中创建无密码短语的ssh密钥

如果您想指定自己的,请参阅this example from the docker-machine documentation

$ docker-machine create \
  --driver generic \
  --generic-ip-address=203.0.113.81 \
  --generic-ssh-key=~/.ssh/id_rsa \
  vm

OP补充道:

(dev) $ logout
(host) $ docker-machine restart dev
(host) $ docker-machine ssh dev

这就是在虚拟机本身中创建ssh密钥:基于TinyCore的boot2docker只保留/ var / lib / boot2docker中的内容,没有其他内容。
它会挂载/Users,但除此之外,其他任何内容(包括/home/docker~中的~/.ssh)都会重置为boot2docker.iso原始内容下次重启。
请参阅“boot2docker: Persist data

要使那些ssh密钥在会话中持续存在,您需要:

  • 在/ Users / any / path / you / want中生成它们(因为它们实际存储在主机上)
  • 或在/var/lib/boot2docker
  • 中生成它们