【问题标题】:Docker-machine can't use userdata add key to ssh cloud imageDocker-machine 无法使用 userdata 向 ssh 云映像添加密钥
【发布时间】:2019-02-22 00:17:46
【问题描述】:
  • 我的提供商:OpenStack
  • 虚拟机操作系统:Ubuntu 16.04
  • Docker 机器版本:0.14.0
  • 问题:
    • 我想使用 userdata 添加另一个公钥到 authorized_keys, 使用 --openstack-user-data-file 选项指定我的 userdata.yml。

这是我的 userdata.yml:

#cloud-config users: - default - name: ubuntu groups: sudo shell: /bin/bash sudo: ['ALL=(ALL) NOPASSWD:ALL'] ssh-authorized-keys: - ssh-rsa XXXXXXXXXXXXXX 使用 docker-machine 命令创建虚拟机: docker-machine --debug create --driver openstack --openstack-auth-url http://x.x.x.x:5001/v3 --openstack-domain-id defaule --openstack-endpoint-type adminURL --openstack-floatingip-pool ext-net --openstack-keypair-name mykey --openstack-flavor-id 4 --openstack-image-name ubuntu-16.04-cloud --openstack-net-name private --openstack-password XXXXX --openstack-private-key-file /home/demo/id_rsa --openstack-sec-groups default --openstack-ssh-user ubuntu --openstack-tenant-name admin --openstack-user-data-file /home/demo/userdata.yml --openstack-username admin vm 创建 vm 后,docker-machine 卡住“等待 ssh 可用”。 这是调试输出: Getting to WaitForSSH function... (vm) Calling .GetSSHHostname (vm) Calling .GetSSHPort (vm) Calling .GetSSHKeyPath (vm) Calling .GetSSHKeyPath (vm) Calling .GetSSHUsername Using SSH client type: external Using SSH private key: /root/.docker/machine/machines/vm/id_rsa (-rw-------) &{[-F /dev/null -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none ubuntu@10.50.2.36 -o IdentitiesOnly=yes -i /root/.docker/machine/machines/vm/id_rsa -p 22] /usr/bin/ssh <nil>} About to run SSH command: exit 0 SSH cmd err, output: exit status 255: Error getting ssh command 'exit 0' : ssh command error: command : exit 0 err : exit status 255 output :

我尝试通过命令 ssh 到 vm: ssh -i /root/.docker/machine/machines/vm/id_rsa ubuntu@10.50.2.36

但收到错误消息: Permission denied (publickey).

所以,我尝试了另一个密钥,密钥在 --openstack-private-key-file /home/demo/id_rsa 选项中

ssh -i /home/demo/id_rsa ubuntu@10.50.2.36

ssh 成功!

我检查了两个键,/root/.docker/machine/machines/vm/id_rsa和/home/demo/id_rsa, 但是两个键是一样的。

我很困惑,为什么相同的密钥,一个可以ssh另一个不能ssh?

【问题讨论】:

    标签: ssh openstack docker-machine cloud-init


    【解决方案1】:

    为了让 Docker-Machine 在 OpenStack 上设置虚拟机,您需要激活 config_drive 选项:docker-machine --openstack-config-drive [OTHER_OPTIONS] &lt;MACHINE_NAME&gt;

    【讨论】:

      猜你喜欢
      • 2016-04-28
      • 1970-01-01
      • 2017-11-02
      • 1970-01-01
      • 2014-09-13
      • 2016-06-15
      • 2021-11-29
      • 1970-01-01
      • 2021-02-23
      相关资源
      最近更新 更多