【发布时间】: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