1. 程式人生 > >sshd 無法啟用的問題 Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ss

sshd 無法啟用的問題 Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ss

原文連結:

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. [email protected]:~# ssh -i mykey.pem [email protected] -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. no instance data found in start  
  18. Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd  
  19.  * Starting AppArmor profiles                                            [ OK ]   
  20. landscape-client is not configured, please run landscape-config.  
  21.  * Stopping System V initialisation compatibility                        [ OK ]  
  22.  * Stopping Handle applying cloud-config                                 [ OK ]  
  23.  * Starting System V runlevel compatibility                              [ OK ]  
  24.  * Starting ACPI daemon                                                  [ OK ]  
  25.  * Starting save kernel messages                                         [ OK ]  
  26.  * Starting automatic crash report generation                            [ OK ]  
  27.  * Starting regular background program processing daemon                 [ OK ]  
  28.  * Starting deferred execution scheduler                                 [ OK ]  
  29.  * Starting CPU interrupts balancing daemon                              [ OK ]  
  30.  * Stopping save kernel messages                                         [ OK ]  
  31.  * Starting crash report submission daemon                               [ OK ]  
  32.  * Stopping System V runlevel compatibility                              [ OK ]  
  33.  * 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. [email protected]:~# 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. [email protected]:~# 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