【问题标题】:How can I save my RSA KEY in my Docker Machine?如何将我的 RSA KEY 保存在我的 Docker 机器中?
【发布时间】:2016-03-26 05:41:42
【问题描述】:

~/.ssh/my_id_rsa 在由docker-machine create 创建的 VM 中,每当我重新启动它时就会消失。我已阅读 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”在哪里?

【问题讨论】:

    标签: docker docker-machine


    【解决方案1】:

    通常,我不会指定任何关于 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中生成它们

    【讨论】:

    • 我知道您不想指定您的密钥。我只是说 docker-machine create 命令根本不应该涉及您的密钥,因为 docker-machine 管理自己的一组密钥。
    • 嗯,好的。这说得通。但是您知道“docker-machine restart”删除我的密钥的原因吗? (我在问题中添加了“更具体地......”部分)
    • @aeas44 我刚刚阅读了您问题的“更具体”部分,并相应地编辑了我的答案。在虚拟机生成你的ssh密钥是我最初错过的。
    • 谢谢@VonC!我不知道 boot2docker 中的数据基本上是短暂的,除了 /var/lib/boot2docker 中的东西。这正是我想知道的!
    • @aeas44 是的,我使用 /var/lib/boot2docker 来放置我想要保留的脚本,例如在每次重新启动时为机器设置一个固定 IP 地址:stackoverflow.com/a/36130098/6309
    猜你喜欢
    • 2021-11-15
    • 2016-04-30
    • 2021-01-13
    • 2017-09-26
    • 1970-01-01
    • 2016-04-07
    • 2020-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多