sshd 无法启用的问题 Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ss

2023-05-16

原文链接:


http://blog.csdn.net/lynn_kong/article/details/9112009


1、问题现象

版本:Grizzly master分支代码2013.06.17
部署:三个节点(Controller/Compute + Network + Compute)
使用的镜像:precise-server-cloudimg-i386-disk1.img
创建虚拟机命令:nova boot ubuntu-keypair-test --image 1f7f5763-33a1-4282-92b3-53366bf7c695 --flavor 2 --nic net-id=3d42a0d4-a980-4613-ae76-a2cddecff054 --availability-zone nova:compute233 --key_name mykey

虚拟机ACTIVE之后,可以ping通虚拟机的fixedip(10.1.1.6)和floatingip(192.150.73.5)。VNC访问虚拟机正常,出现登录界面。因为Ubuntu的镜像无法使用密码登录,所以只能通过SSH访问,这也是创建虚拟机时指定key_name的原因。

在NetworkNode通过ssh登录虚拟机失败:

[plain]  view plain  copy  print ?
  1. root@network232:~# ssh -i mykey.pem ubuntu@192.150.73.5 -v  
  2. OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012  
  3. debug1: Reading configuration data /etc/ssh/ssh_config  
  4. debug1: /etc/ssh/ssh_config line 19: Applying options for *  
  5. debug1: Connecting to 192.150.73.5 [192.150.73.5] port 22.  
  6. debug1: Connection established.  
  7. debug1: permanently_set_uid: 0/0  
  8. debug1: identity file mykey.pem type -1  
  9. debug1: identity file mykey.pem-cert type -1  
  10. debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1  
  11. debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1 pat OpenSSH*  
  12. debug1: Enabling compatibility mode for protocol 2.0  
  13. debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1  
  14. debug1: SSH2_MSG_KEXINIT sent  
  15. Read from socket failed: Connection reset by peer  
虚拟机启动日志:

[plain]  view plain  copy  print ?
  1. Begin: Running /scripts/init-bottom ... done.  
  2. [    1.874928] EXT4-fs (vda1): re-mounted. Opts: (null)  
  3. cloud-init start-local running: Mon, 17 Jun 2013 03:39:11 +0000. up 4.59 seconds  
  4. no instance data found in start-local  
  5. ci-info: lo    : 1 127.0.0.1       255.0.0.0       .  
  6. ci-info: eth0  : 1 10.1.1.6        255.255.255.0   fa:16:3e:31:f4:52  
  7. ci-info: route-0: 0.0.0.0         10.1.1.1        0.0.0.0         eth0   UG  
  8. ci-info: route-1: 10.1.1.0        0.0.0.0         255.255.255.0   eth0   U  
  9. cloud-init start running: Mon, 17 Jun 2013 03:39:14 +0000. up 8.23 seconds  
  10. 2013-06-17 03:39:15,590 - util.py[WARNING]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [0/120s]: http error [404]  
  11. 2013-06-17 03:39:17,083 - util.py[WARNING]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [2/120s]: http error [404]  
  12. 2013-06-17 03:39:18,643 - util.py[WARNING]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [3/120s]: http error [404]  
  13. 2013-06-17 03:39:20,153 - util.py[WARNING]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [5/120s]: http error [404]  
  14. 2013-06-17 03:39:21,638 - util.py[WARNING]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [6/120s]: http error [404]  
  15. 2013-06-17 03:39:23,071 - util.py[WARNING]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [8/120s]: http error [404]  
  16. 2013-06-17 03:41:15,356 - DataSourceEc2.py[CRITICAL]: giving up on md after 120 seconds  
  17.   
  18. no instance data found in start  
  19. Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd  
  20.  * Starting AppArmor profiles                                            [ OK ]   
  21. landscape-client is not configured, please run landscape-config.  
  22.  * Stopping System V initialisation compatibility                        [ OK ]  
  23.  * Stopping Handle applying cloud-config                                 [ OK ]  
  24.  * Starting System V runlevel compatibility                              [ OK ]  
  25.  * Starting ACPI daemon                                                  [ OK ]  
  26.  * Starting save kernel messages                                         [ OK ]  
  27.  * Starting automatic crash report generation                            [ OK ]  
  28.  * Starting regular background program processing daemon                 [ OK ]  
  29.  * Starting deferred execution scheduler                                 [ OK ]  
  30.  * Starting CPU interrupts balancing daemon                              [ OK ]  
  31.  * Stopping save kernel messages                                         [ OK ]  
  32.  * Starting crash report submission daemon                               [ OK ]  
  33.  * Stopping System V runlevel compatibility                              [ OK ]  
  34.  * Starting execute cloud user/final scripts                             [ OK ]  
nova-compute日志中,注入密钥过程无错误:

[plain]  view plain  copy  print ?
  1. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.api 436] [24770] Inject key fs=<nova.virt.disk.vfs.localfs.VFSLocalFS object at 0x3fa2210> key=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdG2ek7tGR4NLPHDHntNdPBu0hnEA4mts9FL+fuqMQar5k+anndsqTwtD4WTfoRCoXBoiDAiEhiy1LOgr6GDgJorMYkfuKgdrdViz2meT2F5wiZnxm/gdnGLko2jYmwsla/wIvRtjzMRYR/ut1OMcqRXwyGtFXkO3VlE8YJRZj0TqjKmKaAwsa0mkVU1G2w1RjT8FDVt2qW+UVGggaqM3KZLs9rwn/K56X+eSraNx+BSBqDa+OX1h6Z1e8nRNVxYviOHL3FybcvlgZXLVWRUSBemS6P4xgQq0dapRB+D3/0N0hzY67FUQNfhFk4EsZCxKMxIi6EH7ueCssPTz5ESmp Generated by Nova  
  2.  _inject_key_into_fs /usr/lib/python2.7/dist-packages/nova/virt/disk/api.py:436  
  3. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.vfs.localfs 102] [24770] Make directory path=root/.ssh make_path /usr/lib/python2.7/dist-packages/nova/virt/disk/vfs/localfs.py:102  
  4. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf readlink -nm /tmp/openstack-vfs-localfsqvWMch/root/.ssh execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  5. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  6. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf mkdir -p /tmp/openstack-vfs-localfsqvWMch/root/.ssh execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  7. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  8. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.vfs.localfs 145] [24770] Set permissions path=root/.ssh user=root group=root set_ownership /usr/lib/python2.7/dist-packages/nova/virt/disk/vfs/localfs.py:145  
  9. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf readlink -nm /tmp/openstack-vfs-localfsqvWMch/root/.ssh execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  10. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  11. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf chown root:root /tmp/openstack-vfs-localfsqvWMch/root/.ssh execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  12. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  13. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.vfs.localfs 139] [24770] Set permissions path=root/.ssh mode=700 set_permissions /usr/lib/python2.7/dist-packages/nova/virt/disk/vfs/localfs.py:139  
  14. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf readlink -nm /tmp/openstack-vfs-localfsqvWMch/root/.ssh execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  15. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  16. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf chmod 700 /tmp/openstack-vfs-localfsqvWMch/root/.ssh execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  17. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  18. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.api 386] [24770] Inject file fs=<nova.virt.disk.vfs.localfs.VFSLocalFS object at 0x3fa2210> path=root/.ssh/authorized_keys append=True _inject_file_into_fs /usr/lib/python2.7/dist-packages/nova/virt/disk/api.py:386  
  19. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.vfs.localfs 107] [24770] Append file path=root/.ssh/authorized_keys append_file /usr/lib/python2.7/dist-packages/nova/virt/disk/vfs/localfs.py:107  
  20. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf readlink -nm /tmp/openstack-vfs-localfsqvWMch/root/.ssh/authorized_keys execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  21. 2013-06-17 09:46:47 DEBUG [nova.openstack.common.rpc.amqp 583] [24770] Making synchronous call on conductor ... multicall /usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/amqp.py:583  
  22. 2013-06-17 09:46:47 DEBUG [nova.openstack.common.rpc.amqp 586] [24770] MSG_ID is 56a11872137f46998a7dac3acb225b83 multicall /usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/amqp.py:586  
  23. 2013-06-17 09:46:47 DEBUG [nova.openstack.common.rpc.amqp 337] [24770] UNIQUE_ID is d355a1b88fcc45709f184272ec22e903. _add_unique_id /usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/amqp.py:337  
  24. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  25. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf tee -a /tmp/openstack-vfs-localfsqvWMch/root/.ssh/authorized_keys execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  26. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  27. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.vfs.localfs 139] [24770] Set permissions path=root/.ssh/authorized_keys mode=600 set_permissions /usr/lib/python2.7/dist-packages/nova/virt/disk/vfs/localfs.py:139  
  28. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf readlink -nm /tmp/openstack-vfs-localfsqvWMch/root/.ssh/authorized_keys execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  29. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  30. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf chmod 600 /tmp/openstack-vfs-localfsqvWMch/root/.ssh/authorized_keys execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  31. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  32. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.vfs.localfs 131] [24770] Has file path=etc/selinux has_file /usr/lib/python2.7/dist-packages/nova/virt/disk/vfs/localfs.py:131  
  33. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf readlink -nm /tmp/openstack-vfs-localfsqvWMch/etc/selinux execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  34. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  35. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf readlink -e /tmp/openstack-vfs-localfsqvWMch/etc/selinux execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  36. 2013-06-17 09:46:48 DEBUG [nova.utils 232] [24770] Result was 1 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  37. 2013-06-17 09:46:48 DEBUG [nova.virt.disk.mount.api 203] [24770] Umount /dev/nbd6p1 unmnt_dev /usr/lib/python2.7/dist-packages/nova/virt/disk/mount/api.py:203  
  38. 2013-06-17 09:46:48 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf umount /dev/nbd6p1 execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  39. 2013-06-17 09:46:49 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  40. 2013-06-17 09:46:49 DEBUG [nova.virt.disk.mount.api 179] [24770] Unmap dev /dev/nbd6 unmap_dev /usr/lib/python2.7/dist-packages/nova/virt/disk/mount/api.py:179  
  41. 2013-06-17 09:46:49 DEBUG [nova.virt.disk.mount.nbd 126] [24770] Release nbd device /dev/nbd6 unget_dev /usr/lib/python2.7/dist-packages/nova/virt/disk/mount/nbd.py:126  
  42. 2013-06-17 09:46:49 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf qemu-nbd -d /dev/nbd6 execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  43. 2013-06-17 09:46:49 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  

2、问题分析

有问题,多google。


社区给出的解释(https://lists.launchpad.net/openstack/msg12202.html):
Ubuntu cloud images do not have any ssh HostKey generated inside them (/etc/ssh/ssh_host_{ecdsa,dsa,rsa}_key). The keys are generated by cloud-init after it finds a metadata service. Without a metadata service, they do not get generated. ssh will drop your connections immediately without HostKeys.

看来是因为虚拟机访问169.254.169.254不通造成的。于是到NetworkNode查看下iptables规则。

NetworkNode的nat表规则:

[plain]  view plain  copy  print ?
  1. root@network232:~# ip netns exec qrouter-b147a74b-39bb-4c7a-aed5-19cac4c2df13 iptables-save -t nat  
  2. # Generated by iptables-save v1.4.12 on Mon Jun 17 10:14:57 2013  
  3. *nat  
  4. :PREROUTING ACCEPT [28:8644]  
  5. :INPUT ACCEPT [90:12364]  
  6. :OUTPUT ACCEPT [0:0]  
  7. :POSTROUTING ACCEPT [7:444]  
  8. :quantum-l3-agent-OUTPUT - [0:0]  
  9. :quantum-l3-agent-POSTROUTING - [0:0]  
  10. :quantum-l3-agent-PREROUTING - [0:0]  
  11. :quantum-l3-agent-float-snat - [0:0]  
  12. :quantum-l3-agent-snat - [0:0]  
  13. :quantum-postrouting-bottom - [0:0]  
  14. -A PREROUTING -j quantum-l3-agent-PREROUTING  
  15. -A OUTPUT -j quantum-l3-agent-OUTPUT  
  16. -A POSTROUTING -j quantum-l3-agent-POSTROUTING  
  17. -A POSTROUTING -j quantum-postrouting-bottom  
  18. -A quantum-l3-agent-OUTPUT -d 192.150.73.3/32 -j DNAT --to-destination 10.1.1.4  
  19. -A quantum-l3-agent-OUTPUT -d 192.150.73.4/32 -j DNAT --to-destination 10.1.1.2  
  20. -A quantum-l3-agent-OUTPUT -d 192.150.73.5/32 -j DNAT --to-destination 10.1.1.6  
  21. -A quantum-l3-agent-POSTROUTING ! -i qg-08db2f8b-88 ! -o qg-08db2f8b-88 -m conntrack ! --ctstate DNAT -j ACCEPT  
  22. -A quantum-l3-agent-PREROUTING -d 169.254.169.254/32 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 9697  
  23. -A quantum-l3-agent-PREROUTING -d 192.150.73.3/32 -j DNAT --to-destination 10.1.1.4  
  24. -A quantum-l3-agent-PREROUTING -d 192.150.73.4/32 -j DNAT --to-destination 10.1.1.2  
  25. -A quantum-l3-agent-PREROUTING -d 192.150.73.5/32 -j DNAT --to-destination 10.1.1.6  
  26. -A quantum-l3-agent-float-snat -s 10.1.1.4/32 -j SNAT --to-source 192.150.73.3  
  27. -A quantum-l3-agent-float-snat -s 10.1.1.2/32 -j SNAT --to-source 192.150.73.4  
  28. -A quantum-l3-agent-float-snat -s 10.1.1.6/32 -j SNAT --to-source 192.150.73.5  
  29. -A quantum-l3-agent-snat -j quantum-l3-agent-float-snat  
  30. -A quantum-l3-agent-snat -s 10.1.1.0/24 -j SNAT --to-source 192.150.73.2  
  31. -A quantum-postrouting-bottom -j quantum-l3-agent-snat  
  32. COMMIT  
  33. # Completed on Mon Jun 17 10:14:57 2013  
NetworkNode的filter表规则:

[plain]  view plain  copy  print ?
  1. root@network232:~# ip netns exec qrouter-b147a74b-39bb-4c7a-aed5-19cac4c2df13 iptables-save -t filter  
  2. # Generated by iptables-save v1.4.12 on Mon Jun 17 13:10:10 2013  
  3. *filter  
  4. :INPUT ACCEPT [1516:215380]  
  5. :FORWARD ACCEPT [81:12744]  
  6. :OUTPUT ACCEPT [912:85634]  
  7. :quantum-filter-top - [0:0]  
  8. :quantum-l3-agent-FORWARD - [0:0]  
  9. :quantum-l3-agent-INPUT - [0:0]  
  10. :quantum-l3-agent-OUTPUT - [0:0]  
  11. :quantum-l3-agent-local - [0:0]  
  12. -A INPUT -j quantum-l3-agent-INPUT  
  13. -A FORWARD -j quantum-filter-top  
  14. -A FORWARD -j quantum-l3-agent-FORWARD  
  15. -A OUTPUT -j quantum-filter-top  
  16. -A OUTPUT -j quantum-l3-agent-OUTPUT  
  17. -A quantum-filter-top -j quantum-l3-agent-local  
  18. -A quantum-l3-agent-INPUT -d 127.0.0.1/32 -p tcp -m tcp --dport 9697 -j ACCEPT  
  19. COMMIT  
  20. # Completed on Mon Jun 17 13:10:10 2013  


可以看到iptables规则没有问题。于是就想着看一下metadata-proxy的日志,果不其然,发现如下打印: 
Remote metadata server experienced an internal server error.
接着看metadata agent的日志,同样的,发现如下错误:
content=: 404 Not Found. The resource could not be found.
继续搜索nova-api的日志,找到根源:
ERROR [nova.api.metadata.handler 141] [4541] Failed to get metadata for ip: 192.168.82.232

192.168.82.232是我NetworkNode的IP地址,而metadata应该是从ControllerNode获取啊。于是搜索代码,来到如下地方:
[python]  view plain  copy  print ?
  1. if CONF.service_quantum_metadata_proxy:  
  2.     meta_data = self._handle_instance_id_request(req)  
  3. else:  
  4.     if req.headers.get('X-Instance-ID'):  
  5.         LOG.warn(  
  6.             _("X-Instance-ID present in request headers. The "  
  7.               "'service_quantum_metadata_proxy' option must be enabled"  
  8.               " to process this header."))  
  9.     meta_data = self._handle_remote_ip_request(req)  
发现进入了else分支,而与Quantum metadata配合时应该是进入if,于是搜索配置项service_quantum_metadata_proxy,发现默认配置为False,而在/etc/nova/nova.conf中并没有进行覆盖,所以导致问题出现。

至此,问题分析完毕。

3、问题解决

修改/etc/nova/nova.conf中配置项service_quantum_metadata_proxy=True,重启进程。

重启虚拟机,查看其console日志输出:
[plain]  view plain  copy  print ?
  1. cloud-init start-local running: Mon, 17 Jun 2013 05:45:40 +0000. up 3.44 seconds  
  2. no instance data found in start-local  
  3. ci-info: lo    : 1 127.0.0.1       255.0.0.0       .  
  4. ci-info: eth0  : 1 10.1.1.6        255.255.255.0   fa:16:3e:31:f4:52  
  5. ci-info: route-0: 0.0.0.0         10.1.1.1        0.0.0.0         eth0   UG  
  6. ci-info: route-1: 10.1.1.0        0.0.0.0         255.255.255.0   eth0   U  
  7. cloud-init start running: Mon, 17 Jun 2013 05:45:44 +0000. up 7.66 seconds  
  8. found data source: DataSourceEc2  
  9. 2013-06-17 05:45:55,999 - __init__.py[WARNING]: Unhandled non-multipart userdata ''  
  10. Generating public/private rsa key pair.  
  11. Your identification has been saved in /etc/ssh/ssh_host_rsa_key.  
  12. Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.  
  13. The key fingerprint is:  
  14. de:04:ec:82:0c:09:d8:b3:12:ac:4a:40:94:81:e7:48 root@ubuntu-keypair-test  
  15. The key's randomart image is:  
  16. +--[ RSA 2048]----+  
  17. |B=o              |  
  18. |=E+.   .         |  
  19. |+=oo    o        |  
  20. |+.oo . . .       |  
  21. |o.  o . S .      |  
  22. |.      o o       |  
  23. |        . .      |  
  24. |                 |  
  25. |                 |  
  26. +-----------------+  
  27. Generating public/private dsa key pair.  
  28. Your identification has been saved in /etc/ssh/ssh_host_dsa_key.  
  29. Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.  
  30. The key fingerprint is:  
  31. 6e:aa:2a:da:bb:ef:43:8b:14:5a:99:36:64:74:10:c7 root@ubuntu-keypair-test  
  32. The key's randomart image is:  
  33. +--[ DSA 1024]----+  
  34. | .++o            |  
  35. |  ooE            |  
  36. | o o             |  
  37. |  B              |  
  38. | + o    S        |  
  39. |. . .  .         |  
  40. | . o .  o        |  
  41. |... o  o         |  
  42. |o.=*+o.          |  
  43. +-----------------+  
  44. Generating public/private ecdsa key pair.  
  45. Your identification has been saved in /etc/ssh/ssh_host_ecdsa_key.  
  46. Your public key has been saved in /etc/ssh/ssh_host_ecdsa_key.pub.  
  47. The key fingerprint is:  
  48. 66:c0:a3:48:cb:d7:0b:bf:6e:e2:6d:e5:24:3b:66:f7 root@ubuntu-keypair-test  
  49. The key's randomart image is:  
  50. +--[ECDSA  256]---+  
  51. |                 |  
  52. |     .           |  
  53. |  .   +          |  
  54. | o o o o         |  
  55. |  + + . S        |  
  56. |   . o.+o        |  
  57. |      o*         |  
  58. |    ..B.o        |  
  59. |   ..B+o .E      |  
  60. +-----------------+  
  61.  * Starting system logging daemon                                        [ OK ]  
  62.  * Starting Handle applying cloud-config                                 [ OK ]  
  63. Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd  
  64.  * Starting AppArmor profiles                                            [ OK ]   
  65. landscape-client is not configured, please run landscape-config.  
  66.  * Stopping System V initialisation compatibility                        [ OK ]  
  67.  * Starting System V runlevel compatibility                              [ OK ]  
  68.  * Starting automatic crash report generation                            [ OK ]  
  69.  * Starting save kernel messages



1、问题现象

版本:Grizzly master分支代码2013.06.17
部署:三个节点(Controller/Compute + Network + Compute)
使用的镜像:precise-server-cloudimg-i386-disk1.img
创建虚拟机命令:nova boot ubuntu-keypair-test --image 1f7f5763-33a1-4282-92b3-53366bf7c695 --flavor 2 --nic net-id=3d42a0d4-a980-4613-ae76-a2cddecff054 --availability-zone nova:compute233 --key_name mykey

虚拟机ACTIVE之后,可以ping通虚拟机的fixedip(10.1.1.6)和floatingip(192.150.73.5)。VNC访问虚拟机正常,出现登录界面。因为Ubuntu的镜像无法使用密码登录,所以只能通过SSH访问,这也是创建虚拟机时指定key_name的原因。

在NetworkNode通过ssh登录虚拟机失败:

[plain]  view plain  copy  print ?
  1. root@network232:~# ssh -i mykey.pem ubuntu@192.150.73.5 -v  
  2. OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012  
  3. debug1: Reading configuration data /etc/ssh/ssh_config  
  4. debug1: /etc/ssh/ssh_config line 19: Applying options for *  
  5. debug1: Connecting to 192.150.73.5 [192.150.73.5] port 22.  
  6. debug1: Connection established.  
  7. debug1: permanently_set_uid: 0/0  
  8. debug1: identity file mykey.pem type -1  
  9. debug1: identity file mykey.pem-cert type -1  
  10. debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1  
  11. debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1 pat OpenSSH*  
  12. debug1: Enabling compatibility mode for protocol 2.0  
  13. debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1  
  14. debug1: SSH2_MSG_KEXINIT sent  
  15. Read from socket failed: Connection reset by peer  
虚拟机启动日志:

[plain]  view plain  copy  print ?
  1. Begin: Running /scripts/init-bottom ... done.  
  2. [    1.874928] EXT4-fs (vda1): re-mounted. Opts: (null)  
  3. cloud-init start-local running: Mon, 17 Jun 2013 03:39:11 +0000. up 4.59 seconds  
  4. no instance data found in start-local  
  5. ci-info: lo    : 1 127.0.0.1       255.0.0.0       .  
  6. ci-info: eth0  : 1 10.1.1.6        255.255.255.0   fa:16:3e:31:f4:52  
  7. ci-info: route-0: 0.0.0.0         10.1.1.1        0.0.0.0         eth0   UG  
  8. ci-info: route-1: 10.1.1.0        0.0.0.0         255.255.255.0   eth0   U  
  9. cloud-init start running: Mon, 17 Jun 2013 03:39:14 +0000. up 8.23 seconds  
  10. 2013-06-17 03:39:15,590 - util.py[WARNING]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [0/120s]: http error [404]  
  11. 2013-06-17 03:39:17,083 - util.py[WARNING]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [2/120s]: http error [404]  
  12. 2013-06-17 03:39:18,643 - util.py[WARNING]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [3/120s]: http error [404]  
  13. 2013-06-17 03:39:20,153 - util.py[WARNING]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [5/120s]: http error [404]  
  14. 2013-06-17 03:39:21,638 - util.py[WARNING]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [6/120s]: http error [404]  
  15. 2013-06-17 03:39:23,071 - util.py[WARNING]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [8/120s]: http error [404]  
  16. 2013-06-17 03:41:15,356 - DataSourceEc2.py[CRITICAL]: giving up on md after 120 seconds  
  17.   
  18. no instance data found in start  
  19. Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd  
  20.  * Starting AppArmor profiles                                            [ OK ]   
  21. landscape-client is not configured, please run landscape-config.  
  22.  * Stopping System V initialisation compatibility                        [ OK ]  
  23.  * Stopping Handle applying cloud-config                                 [ OK ]  
  24.  * Starting System V runlevel compatibility                              [ OK ]  
  25.  * Starting ACPI daemon                                                  [ OK ]  
  26.  * Starting save kernel messages                                         [ OK ]  
  27.  * Starting automatic crash report generation                            [ OK ]  
  28.  * Starting regular background program processing daemon                 [ OK ]  
  29.  * Starting deferred execution scheduler                                 [ OK ]  
  30.  * Starting CPU interrupts balancing daemon                              [ OK ]  
  31.  * Stopping save kernel messages                                         [ OK ]  
  32.  * Starting crash report submission daemon                               [ OK ]  
  33.  * Stopping System V runlevel compatibility                              [ OK ]  
  34.  * Starting execute cloud user/final scripts                             [ OK ]  
nova-compute日志中,注入密钥过程无错误:

[plain]  view plain  copy  print ?
  1. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.api 436] [24770] Inject key fs=<nova.virt.disk.vfs.localfs.VFSLocalFS object at 0x3fa2210> key=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdG2ek7tGR4NLPHDHntNdPBu0hnEA4mts9FL+fuqMQar5k+anndsqTwtD4WTfoRCoXBoiDAiEhiy1LOgr6GDgJorMYkfuKgdrdViz2meT2F5wiZnxm/gdnGLko2jYmwsla/wIvRtjzMRYR/ut1OMcqRXwyGtFXkO3VlE8YJRZj0TqjKmKaAwsa0mkVU1G2w1RjT8FDVt2qW+UVGggaqM3KZLs9rwn/K56X+eSraNx+BSBqDa+OX1h6Z1e8nRNVxYviOHL3FybcvlgZXLVWRUSBemS6P4xgQq0dapRB+D3/0N0hzY67FUQNfhFk4EsZCxKMxIi6EH7ueCssPTz5ESmp Generated by Nova  
  2.  _inject_key_into_fs /usr/lib/python2.7/dist-packages/nova/virt/disk/api.py:436  
  3. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.vfs.localfs 102] [24770] Make directory path=root/.ssh make_path /usr/lib/python2.7/dist-packages/nova/virt/disk/vfs/localfs.py:102  
  4. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf readlink -nm /tmp/openstack-vfs-localfsqvWMch/root/.ssh execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  5. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  6. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf mkdir -p /tmp/openstack-vfs-localfsqvWMch/root/.ssh execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  7. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  8. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.vfs.localfs 145] [24770] Set permissions path=root/.ssh user=root group=root set_ownership /usr/lib/python2.7/dist-packages/nova/virt/disk/vfs/localfs.py:145  
  9. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf readlink -nm /tmp/openstack-vfs-localfsqvWMch/root/.ssh execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  10. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  11. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf chown root:root /tmp/openstack-vfs-localfsqvWMch/root/.ssh execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  12. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  13. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.vfs.localfs 139] [24770] Set permissions path=root/.ssh mode=700 set_permissions /usr/lib/python2.7/dist-packages/nova/virt/disk/vfs/localfs.py:139  
  14. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf readlink -nm /tmp/openstack-vfs-localfsqvWMch/root/.ssh execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  15. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  16. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf chmod 700 /tmp/openstack-vfs-localfsqvWMch/root/.ssh execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  17. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  18. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.api 386] [24770] Inject file fs=<nova.virt.disk.vfs.localfs.VFSLocalFS object at 0x3fa2210> path=root/.ssh/authorized_keys append=True _inject_file_into_fs /usr/lib/python2.7/dist-packages/nova/virt/disk/api.py:386  
  19. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.vfs.localfs 107] [24770] Append file path=root/.ssh/authorized_keys append_file /usr/lib/python2.7/dist-packages/nova/virt/disk/vfs/localfs.py:107  
  20. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf readlink -nm /tmp/openstack-vfs-localfsqvWMch/root/.ssh/authorized_keys execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  21. 2013-06-17 09:46:47 DEBUG [nova.openstack.common.rpc.amqp 583] [24770] Making synchronous call on conductor ... multicall /usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/amqp.py:583  
  22. 2013-06-17 09:46:47 DEBUG [nova.openstack.common.rpc.amqp 586] [24770] MSG_ID is 56a11872137f46998a7dac3acb225b83 multicall /usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/amqp.py:586  
  23. 2013-06-17 09:46:47 DEBUG [nova.openstack.common.rpc.amqp 337] [24770] UNIQUE_ID is d355a1b88fcc45709f184272ec22e903. _add_unique_id /usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/amqp.py:337  
  24. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  25. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf tee -a /tmp/openstack-vfs-localfsqvWMch/root/.ssh/authorized_keys execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  26. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  27. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.vfs.localfs 139] [24770] Set permissions path=root/.ssh/authorized_keys mode=600 set_permissions /usr/lib/python2.7/dist-packages/nova/virt/disk/vfs/localfs.py:139  
  28. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf readlink -nm /tmp/openstack-vfs-localfsqvWMch/root/.ssh/authorized_keys execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  29. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  30. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf chmod 600 /tmp/openstack-vfs-localfsqvWMch/root/.ssh/authorized_keys execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  31. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  32. 2013-06-17 09:46:47 DEBUG [nova.virt.disk.vfs.localfs 131] [24770] Has file path=etc/selinux has_file /usr/lib/python2.7/dist-packages/nova/virt/disk/vfs/localfs.py:131  
  33. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf readlink -nm /tmp/openstack-vfs-localfsqvWMch/etc/selinux execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  34. 2013-06-17 09:46:47 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  35. 2013-06-17 09:46:47 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf readlink -e /tmp/openstack-vfs-localfsqvWMch/etc/selinux execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  36. 2013-06-17 09:46:48 DEBUG [nova.utils 232] [24770] Result was 1 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  37. 2013-06-17 09:46:48 DEBUG [nova.virt.disk.mount.api 203] [24770] Umount /dev/nbd6p1 unmnt_dev /usr/lib/python2.7/dist-packages/nova/virt/disk/mount/api.py:203  
  38. 2013-06-17 09:46:48 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf umount /dev/nbd6p1 execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  39. 2013-06-17 09:46:49 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  
  40. 2013-06-17 09:46:49 DEBUG [nova.virt.disk.mount.api 179] [24770] Unmap dev /dev/nbd6 unmap_dev /usr/lib/python2.7/dist-packages/nova/virt/disk/mount/api.py:179  
  41. 2013-06-17 09:46:49 DEBUG [nova.virt.disk.mount.nbd 126] [24770] Release nbd device /dev/nbd6 unget_dev /usr/lib/python2.7/dist-packages/nova/virt/disk/mount/nbd.py:126  
  42. 2013-06-17 09:46:49 DEBUG [nova.utils 208] [24770] Running cmd (subprocess): sudo nova-rootwrap /etc/nova/rootwrap.conf qemu-nbd -d /dev/nbd6 execute /usr/lib/python2.7/dist-packages/nova/utils.py:208  
  43. 2013-06-17 09:46:49 DEBUG [nova.utils 232] [24770] Result was 0 execute /usr/lib/python2.7/dist-packages/nova/utils.py:232  

2、问题分析

有问题,多google。


社区给出的解释(https://lists.launchpad.net/openstack/msg12202.html):
Ubuntu cloud images do not have any ssh HostKey generated inside them (/etc/ssh/ssh_host_{ecdsa,dsa,rsa}_key). The keys are generated by cloud-init after it finds a metadata service. Without a metadata service, they do not get generated. ssh will drop your connections immediately without HostKeys.

看来是因为虚拟机访问169.254.169.254不通造成的。于是到NetworkNode查看下iptables规则。

NetworkNode的nat表规则:

[plain]  view plain  copy  print ?
  1. root@network232:~# ip netns exec qrouter-b147a74b-39bb-4c7a-aed5-19cac4c2df13 iptables-save -t nat  
  2. # Generated by iptables-save v1.4.12 on Mon Jun 17 10:14:57 2013  
  3. *nat  
  4. :PREROUTING ACCEPT [28:8644]  
  5. :INPUT ACCEPT [90:12364]  
  6. :OUTPUT ACCEPT [0:0]  
  7. :POSTROUTING ACCEPT [7:444]  
  8. :quantum-l3-agent-OUTPUT - [0:0]  
  9. :quantum-l3-agent-POSTROUTING - [0:0]  
  10. :quantum-l3-agent-PREROUTING - [0:0]  
  11. :quantum-l3-agent-float-snat - [0:0]  
  12. :quantum-l3-agent-snat - [0:0]  
  13. :quantum-postrouting-bottom - [0:0]  
  14. -A PREROUTING -j quantum-l3-agent-PREROUTING  
  15. -A OUTPUT -j quantum-l3-agent-OUTPUT  
  16. -A POSTROUTING -j quantum-l3-agent-POSTROUTING  
  17. -A POSTROUTING -j quantum-postrouting-bottom  
  18. -A quantum-l3-agent-OUTPUT -d 192.150.73.3/32 -j DNAT --to-destination 10.1.1.4  
  19. -A quantum-l3-agent-OUTPUT -d 192.150.73.4/32 -j DNAT --to-destination 10.1.1.2  
  20. -A quantum-l3-agent-OUTPUT -d 192.150.73.5/32 -j DNAT --to-destination 10.1.1.6  
  21. -A quantum-l3-agent-POSTROUTING ! -i qg-08db2f8b-88 ! -o qg-08db2f8b-88 -m conntrack ! --ctstate DNAT -j ACCEPT  
  22. -A quantum-l3-agent-PREROUTING -d 169.254.169.254/32 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 9697  
  23. -A quantum-l3-agent-PREROUTING -d 192.150.73.3/32 -j DNAT --to-destination 10.1.1.4  
  24. -A quantum-l3-agent-PREROUTING -d 192.150.73.4/32 -j DNAT --to-destination 10.1.1.2  
  25. -A quantum-l3-agent-PREROUTING -d 192.150.73.5/32 -j DNAT --to-destination 10.1.1.6  
  26. -A quantum-l3-agent-float-snat -s 10.1.1.4/32 -j SNAT --to-source 192.150.73.3  
  27. -A quantum-l3-agent-float-snat -s 10.1.1.2/32 -j SNAT --to-source 192.150.73.4  
  28. -A quantum-l3-agent-float-snat -s 10.1.1.6/32 -j SNAT --to-source 192.150.73.5  
  29. -A quantum-l3-agent-snat -j quantum-l3-agent-float-snat  
  30. -A quantum-l3-agent-snat -s 10.1.1.0/24 -j SNAT --to-source 192.150.73.2  
  31. -A quantum-postrouting-bottom -j quantum-l3-agent-snat  
  32. COMMIT  
  33. # Completed on Mon Jun 17 10:14:57 2013  
NetworkNode的filter表规则:

[plain]  view plain  copy  print ?
  1. root@network232:~# ip netns exec qrouter-b147a74b-39bb-4c7a-aed5-19cac4c2df13 iptables-save -t filter  
  2. # Generated by iptables-save v1.4.12 on Mon Jun 17 13:10:10 2013  
  3. *filter  
  4. :INPUT ACCEPT [1516:215380]  
  5. :FORWARD ACCEPT [81:12744]  
  6. :OUTPUT ACCEPT [912:85634]  
  7. :quantum-filter-top - [0:0]  
  8. :quantum-l3-agent-FORWARD - [0:0]  
  9. :quantum-l3-agent-INPUT - [0:0]  
  10. :quantum-l3-agent-OUTPUT - [0:0]  
  11. :quantum-l3-agent-local - [0:0]  
  12. -A INPUT -j quantum-l3-agent-INPUT  
  13. -A FORWARD -j quantum-filter-top  
  14. -A FORWARD -j quantum-l3-agent-FORWARD  
  15. -A OUTPUT -j quantum-filter-top  
  16. -A OUTPUT -j quantum-l3-agent-OUTPUT  
  17. -A quantum-filter-top -j quantum-l3-agent-local  
  18. -A quantum-l3-agent-INPUT -d 127.0.0.1/32 -p tcp -m tcp --dport 9697 -j ACCEPT  
  19. COMMIT  
  20. # Completed on Mon Jun 17 13:10:10 2013  


可以看到iptables规则没有问题。于是就想着看一下metadata-proxy的日志,果不其然,发现如下打印: 
Remote metadata server experienced an internal server error.
接着看metadata agent的日志,同样的,发现如下错误:
content=: 404 Not Found. The resource could not be found.
继续搜索nova-api的日志,找到根源:
ERROR [nova.api.metadata.handler 141] [4541] Failed to get metadata for ip: 192.168.82.232

192.168.82.232是我NetworkNode的IP地址,而metadata应该是从ControllerNode获取啊。于是搜索代码,来到如下地方:
[python]  view plain  copy  print ?
  1. if CONF.service_quantum_metadata_proxy:  
  2.     meta_data = self._handle_instance_id_request(req)  
  3. else:  
  4.     if req.headers.get('X-Instance-ID'):  
  5.         LOG.warn(  
  6.             _("X-Instance-ID present in request headers. The "  
  7.               "'service_quantum_metadata_proxy' option must be enabled"  
  8.               " to process this header."))  
  9.     meta_data = self._handle_remote_ip_request(req)  
发现进入了else分支,而与Quantum metadata配合时应该是进入if,于是搜索配置项service_quantum_metadata_proxy,发现默认配置为False,而在/etc/nova/nova.conf中并没有进行覆盖,所以导致问题出现。

至此,问题分析完毕。

3、问题解决

修改/etc/nova/nova.conf中配置项service_quantum_metadata_proxy=True,重启进程。

重启虚拟机,查看其console日志输出:
[plain]  view plain  copy  print ?
  1. cloud-init start-local running: Mon, 17 Jun 2013 05:45:40 +0000. up 3.44 seconds  
  2. no instance data found in start-local  
  3. ci-info: lo    : 1 127.0.0.1       255.0.0.0       .  
  4. ci-info: eth0  : 1 10.1.1.6        255.255.255.0   fa:16:3e:31:f4:52  
  5. ci-info: route-0: 0.0.0.0         10.1.1.1        0.0.0.0         eth0   UG  
  6. ci-info: route-1: 10.1.1.0        0.0.0.0         255.255.255.0   eth0   U  
  7. cloud-init start running: Mon, 17 Jun 2013 05:45:44 +0000. up 7.66 seconds  
  8. found data source: DataSourceEc2  
  9. 2013-06-17 05:45:55,999 - __init__.py[WARNING]: Unhandled non-multipart userdata ''  
  10. Generating public/private rsa key pair.  
  11. Your identification has been saved in /etc/ssh/ssh_host_rsa_key.  
  12. Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.  
  13. The key fingerprint is:  
  14. de:04:ec:82:0c:09:d8:b3:12:ac:4a:40:94:81:e7:48 root@ubuntu-keypair-test  
  15. The key's randomart image is:  
  16. +--[ RSA 2048]----+  
  17. |B=o              |  
  18. |=E+.   .         |  
  19. |+=oo    o        |  
  20. |+.oo . . .       |  
  21. |o.  o . S .      |  
  22. |.      o o       |  
  23. |        . .      |  
  24. |                 |  
  25. |                 |  
  26. +-----------------+  
  27. Generating public/private dsa key pair.  
  28. Your identification has been saved in /etc/ssh/ssh_host_dsa_key.  
  29. Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.  
  30. The key fingerprint is:  
  31. 6e:aa:2a:da:bb:ef:43:8b:14:5a:99:36:64:74:10:c7 root@ubuntu-keypair-test  
  32. The key's randomart image is:  
  33. +--[ DSA 1024]----+  
  34. | .++o            |  
  35. |  ooE            |  
  36. | o o             |  
  37. |  B              |  
  38. | + o    S        |  
  39. |. . .  .         |  
  40. | . o .  o        |  
  41. |... o  o         |  
  42. |o.=*+o.          |  
  43. +-----------------+  
  44. Generating public/private ecdsa key pair.  
  45. Your identification has been saved in /etc/ssh/ssh_host_ecdsa_key.  
  46. Your public key has been saved in /etc/ssh/ssh_host_ecdsa_key.pub.  
  47. The key fingerprint is:  
  48. 66:c0:a3:48:cb:d7:0b:bf:6e:e2:6d:e5:24:3b:66:f7 root@ubuntu-keypair-test  
  49. The key's randomart image is:  
  50. +--[ECDSA  256]---+  
  51. |                 |  
  52. |     .           |  
  53. |  .   +          |  
  54. | o o o o         |  
  55. |  + + . S        |  
  56. |   . o.+o        |  
  57. |      o*         |  
  58. |    ..B.o        |  
  59. |   ..B+o .E      |  
  60. +-----------------+  
  61.  * Starting system logging daemon                                        [ OK ]  
  62.  * Starting Handle applying cloud-config                                 [ OK ]  
  63. Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd  
  64.  * Starting AppArmor profiles                                            [ OK ]   
  65. landscape-client is not configured, please run landscape-config.  
  66.  * Stopping System V initialisation compatibility                        [ OK ]  
  67.  * Starting System V runlevel compatibility                              [ OK ]  
  68.  * Starting automatic crash report generation                            [ OK ]  
  69.  * Starting save kernel messages                                         [ OK ]  
  70.  * Starting ACPI daemon                                                  [ OK ]  
  71.  * Starting regular background program processing daemon                 [ OK ]  
  72.  * Starting deferred execution scheduler                                 [ OK ]  
  73.  * Starting CPU interrupts balancing daemon                              [ OK ]  
  74.  * Stopping save kernel messages                                         [ OK ]  
  75.  * Starting crash report submission daemon                               [ OK ]  
  76.  * Stopping System V runlevel compatibility                              [ OK ]  
  77. Generating locales...  
  78.   en_US.UTF-8... done  
  79. Generation complete.  
  80. ec2:   
  81. ec2: #############################################################  
  82. ec2: -----BEGIN SSH HOST KEY FINGERPRINTS-----  
  83. ec2: 1024 6e:aa:2a:da:bb:ef:43:8b:14:5a:99:36:64:74:10:c7  root@ubuntu-keypair-test (DSA)  
  84. ec2: 256 66:c0:a3:48:cb:d7:0b:bf:6e:e2:6d:e5:24:3b:66:f7  root@ubuntu-keypair-test (ECDSA)  
  85. ec2: 2048 de:04:ec:82:0c:09:d8:b3:12:ac:4a:40:94:81:e7:48  root@ubuntu-keypair-test (RSA)  
  86. ec2: -----END SSH HOST KEY FINGERPRINTS-----  
  87. ec2: #############################################################  
  88. -----BEGIN SSH HOST KEY KEYS-----  
  89. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCwe6gbVpdgs1dOskAl8M42wwaTZJdfGV3JslsDy9g04f4/JCGJskDSm4Tgv9d4p+a6G85/NofsZSbmj8/6nWZ8= root@ubuntu-keypair-test  
  90. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUrTgq3oTDuw1Bvh62LaYOOxjsEkfOk9IIVOdqASG5c2ExucIAKdRZY8XqlmoN3d64VI65ArsBWQ+PeuofUFfE5z8DvFr13ieNlLw8VgD46TGZ9XYLzZgs1CpN1evoU6Np3NN8q3CihprzcBCh7uKlAsgmwULh22+vDJPMnJamtn0Nk3NVtLJKqyujoN/pEIsWYouyBOJIKWjPLUPnGRpVeqQ1NkRED5w2SHbK9I49e6fItPnA9jVdTG06K2/xThXVUjVE3iwXr/uHMfNpJoejZzSqCmdhD68pIMleOI/Hd6+RPMJurw5CVYvdLOv4lWQMOEOpBzzXSp44JMlN3AKP root@ubuntu-keypair-test  
  91. -----END SSH HOST KEY KEYS-----  
  92. cloud-init boot finished at Mon, 17 Jun 2013 05:46:31 +0000. Up 54.86 seconds  

再次在NetworkNode上ssh登录虚拟机:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sshd 无法启用的问题 Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ss 的相关文章

  • 无法加载文件或程序集“PDFNet”或其依赖项之一。尝试加载格式不正确的程序

    我正在尝试从 VS2012 中的空白 Web 表单模板构建示例 Web 应用程序 并向其中添加 PDFNet dll 如果我在 NET 3 5 中运行该项目没有问题 如果我在 NET gt 4 中运行它 我会收到此错误 无法加载文件或程序集
  • .NET 可以加载和解析与 Java Properties 类等效的属性文件吗?

    C 中是否有一种简单的方法来读取属性文件 该文件的每个属性都位于单独的行上 后跟等号和值 如下所示 ServerName prod srv1 Port 8888 CustomProperty Any value 在 Java 中 Prope
  • 如何为 Web 应用程序创建模拟器以进行负载测试和压力测试

    我如何记录Web服务器日志文件并重播记录的服务器日志 以便我可以稍后运行日志并检查sql服务器上的负载 前任 sql server 上的请求数和响应数 构建一个可以解析来自 Web 服务器的日志文件并再次重放请求的工具 然后 您可以使用普通
  • 主机密钥验证失败

    我正在尝试通过装有 Cygwin 的 PC ssh 进入我的 UBUNTU 我可以顺利地 WINSCP 但是当我通过命令行 ssh 时 会出现以下错误 WARNING REMOTE HOST IDENTIFICATION HAS CHANG
  • 如何在 Node.js server.listen() 中使用可选的主机名参数

    从我到目前为止在教程中读到的内容来看 可选的hostname参数为server listen port hostname backlog callback 一直都是127 0 0 1 环回 0 0 0 0 监听每个可用的网络接口 默认选项
  • Python 错误:未指定主机

    我刚刚写了一个简单的python demo 同时遇到了一个令人困惑的问题 import requests print requests get http www sina com cn 我知道正确的结果是返回 Response 200 但是
  • Android 快速位图加载

    我有一块图像想要加载到屏幕上 所有图像都是我下载并存储在 SD 卡上的文件 到目前为止 我找到了两种方法来做到这一点 首先是在活动开始时将它们加载到主线程上 我得到了大约 70 张图像 大约需要 2 1 秒才能加载它们 另一种方法是我现在正
  • 加载后 JavaScript 不会执行

    我的网站包含链接 当我点击一次时 目标 HTML 内容会使用 JQuery 加载到 div 中 到目前为止没有问题 我的问题是 当第三次加载下面的搜索页面时 脚本将不会执行 h1 span Search span h1 p class bi
  • 调用另一个 lisp 文件中的函数

    我必须用 Lisp 写一个游戏 为了清楚起见 我想将代码拆分到不同的 lisp 文件中 如何从另一个文件中的函数中调用函数 例如 file1 lisp 有一个名为 function1 的函数 file2 lisp 有一个名为 functio
  • 如何使用 ngrok 托管 HTML 文件?

    是否可以使用 NGROK 托管 HTML 文件 而不是 Web 应用程序 我真的对 NGROK 一无所知 我只是用它来托管 Twilio 应用程序的服务器 并且想用它来托管我的另一个项目的 HTML 文件 另外 有人知道如何在 Mac 上创
  • 如何将文件加载到共享托管平台上的 mysql DB 中?

    我的机器上运行的一个进程从各个网站收集数据并将其存储在本地 mysql 数据库中 每隔几个小时使用 SELECT INTO OUTFILE 导出相同的数据并通过 FTP 传输到共享主机 我的托管提供商不允许在共享主机上执行 LOAD DAT
  • OnLoad方法和Load事件之间的区别?

    有什么区别OnLoad方法和Load事件 我正在开发 WinForm 控件 我应该注册到Load事件或覆盖OnLoad方法 每一种的优点和缺点是什么 我会去覆盖OnLoad 这样您就可以节省 CPU 周期来调用事件处理程序 如果您从控件继承
  • Django - 如何简单地获取域名? [复制]

    这个问题在这里已经有答案了 首先 我想说我是 Django 的初学者 我正在寻找一种简单的方法来检索我的 Django 网站的域名 我想在我的settings py 中执行此操作 我已经尝试过像这样的套接字 socket gethostna
  • Powershell v4 不自动导入模块

    我在用Microsoft PowerShell v4 PS C gt get host Name ConsoleHost Version 4 0 InstanceId 3b4b6b8d 70ec 46dd 942a bfecf5fb6f31
  • 在 jQuery/Javascript 元素上应用 CSS 规则后的事件

    CSS 规则应用于 DOM 中的所有元素后是否会发生事件 我知道绑定 window load 来自 jQuery 在加载所有 js 和 css 文件时触发 但在应用它们时则不然 动态应用和包含之间有几毫秒的小延迟 例如 design att
  • $(this) 在函数中不起作用

    以下代码从文件加载 html 内容 我使用这个线程 https stackoverflow com questions 168963 stop jquery load response from being cached
  • (Flutter) HTTPClient 参数无效:URI 中未指定主机

    目前正在开发一个小应用程序 允许用户查看存储在 Heroku 上的数据库 但是在使用数据库的 URL herokuapp com api 时 我遇到了上述问题 var client createHttpClient var response
  • 如何在接收端打开没有 SSHD 的 shell?

    我有一台没有 SSHD 的机器 我想从远程机器 我可以完全控制 在这台机器上打开 bash shell 由于我的有限机器上有 SSH 因此我配置了反向代理 ssh R 19999 localhost 22 remoteuser remote
  • 如何在 Flutter 中开始加载主题

    我希望用户可以在我的应用程序中更改并保存主题颜色 但是 我不知道如何在应用程序开始运行时加载保存的主题颜色 比如我想在下面的评论处直接加载保存的主题颜色 我尝试了共享首选项 但是 SharedPreference 实例需要运行await 这
  • 在 XAMPP 上设置虚拟主机

    我已经在 Ubuntu 上的 opt lampp 目录中安装了 XAMPP 并且想要设置一些虚拟主机 Apache 虚拟主机教程说明放置

随机推荐

  • RPlidar(一)——雷达试用

    先附一张RPlidar的图片 以下为本人初次通过ubuntu使用RPlidar 首先将RPlidar连接到电脑上 然后在terminal输入 ls dev ttyUSB 更改com port 权限 sudo chmod 666 dev tt
  • RPlidar学习(三)——RPlidar源代码库

    1 头文件简介 rplidar h 一般情况下开发的项目中仅需要引入该头文件即可使用 RPLIDAR SDK 的所有功能 rptypes h 平台无关的结构和常量定义 rplidar protocol h 定义了 RPLIDAR 通讯协议文
  • PC读写西门子PLC寄存器的值

    https blog csdn net weixin 29482793 article details 81873280
  • 编码的历史

    快下班时 xff0c 爱问问题的小朋友Nico又问了一个问题 xff1a 34 sqlserver里面有char和nchar xff0c 那个n据说是指unicode的数据 xff0c 这个是什么意思 34 并不是所有简单的问题都很容易回答
  • 教你如何通过MCU配置S2E为TCP Server的工作模式

    在上一篇文章中讲了 如何通过MCU配置S2E为UDP模式 xff0c 相信小伙伴们已经了解了S2E的基本功能 xff0c 在这一篇中 xff0c 我们再接再厉 xff0c 继续学习一下 如何通过MCU配置S2E为TCP Server的工作模
  • ubuntu配置USB权限

    usbcan设备在ubutu下使用 xff0c 每次必须动用root权限才能使用 xff0c 比较繁琐 参考如下文章进行配置 xff1a https blog csdn net bigdog 1027 article details 790
  • SocketCAN学习笔记

    1 对SocketCAN的理解 69条消息 对Socket CAN的理解 xff08 1 xff09 CAN总线原理 yuzeze的博客 CSDN博客 can socket 对Socket CAN的理解 xff08 2 xff09 Sock
  • Golang写Post请求并获取返回值

    直接上代码 xff0c 其中可以在下面代码中添加 package main import fmt net http io ioutil net url func main 需要post的数据 以key value形式提交 data 61 m
  • postMan 汉化

    1 下载postman解压安装 xff0c 下载地址Postman 2 下载汉化包 Release 9 2 0 hlmd Postman cn GitHub 选择postMan对应的版本 3 找到postman根目录我的在c盘 xff0c
  • 2022 小学组试题

    1 史密斯数 若一个合数的质因数分解式逐为位相加之和等于其本身逐位相加之和 则称这个数为smith数 如4937775 3 5 5 65837 而3 5 5 6 5 8 3 7 42 4 9 3 7 7 7 5 42 所以4937775是s
  • usaco 1 回文素数快速筛选

    求指定区间的回文素数 include lt bits stdc 43 43 h gt define N 10000010 using namespace std bool st N int cnt 61 0 primes N n m voi
  • C++ STL 学习笔记

    MAP的用法 xff1a 389找不同 给定两个字符串 s 和 t xff0c 它们只包含小写字母 字符串 t 由字符串 s 随机重排 xff0c 然后在随机位置添加一个字母 请找出在 t 中被添加的字母 示例 输入 xff1a s 61
  • 大模型平台

    大模型训练平台的算力急速增长 xff1a 据报道 xff0c GPT3 5 的训练使用了微软专门建设的 AI 计算系统 xff0c 由 1 万个 V100 GPU 组成的高性能网络集群 xff0c 总算力消耗约 3640 PF days 即
  • Float IP 浮动IP地址

    xfeff xfeff 就是多个主机工作在 同一个集群中 xff0c 即两台主机以上 每台机器除了自己的实IP外 xff0c 会设置一个浮动IP xff0c 浮动IP与主机的服务 xff08 HTTP服务 邮箱服务 xff09 绑在一起的
  • linux 下安装 c++编译器的方法

    xfeff xfeff 假设你的电脑能够访问internet xff0c 这个命令会自动从网络下载并把软件安装到本地 超级用户权限 xff1a yum y install gcc c 43 43 另外一定不要天真的认为linux 下面 编译
  • linux 内核编译错误的原因

    xfeff xfeff 直接编译centos 7 内核目录下的代码出现如下错误 xff1a root 64 localhost 3 10 0 123 el7 x86 64 make make 1 No rule to make target
  • ifconfig 看到Rx error overrun 如何解决

    xfeff xfeff 一台机器经常收到丢包的报警 xff0c 先看看最底层的有没有问题 ethtool em2 egrep 39 Speed Duplex 39 Speed 1000Mb s Duplex Full ethtool S e
  • AES-GCM算法

    AES GCM算法简介 AES GCM算法是带认证和加密的算法 xff0c 同时可以对给定的原文 xff0c 生成加密数据和认证码 参数如下 xff1a 1 xff09 带加密的原文 2 xff09 存储加密后密文 3 xff09 IV向量
  • cmake 编译c++项目

    分两步 xff1a CMakeLists txt文件编写结束以后就可以对工程进行编译了 xff0c 进入build目录 并执行cmake和make指令 xff0c 如下 xff1a 第一步 cmake span class token pu
  • sshd 无法启用的问题 Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ss

    原文链接 xff1a http blog csdn net lynn kong article details 9112009 1 问题现象 版本 xff1a Grizzly master分支代码2013 06 17 部署 xff1a 三个