Openstack中用keypair生成和访问虚机的方法

标签:task   iso   perm   cte   生成   复制   vol   rsa   sla

Openstack中用镜像文件生成的image来创建虚机(VM或Instance)时, 通常不支持用户名加密码的ssh方式登录访问该VM,而是key file方式.

这里以Centos的镜像为例, 介绍用keypair生成和访问虚机的方法.

1) 查看系统中的keypair:
root@cic-1:~# openstack keypair list
+----------+-------------------------------------------------+
| Name     | Fingerprint                                     |
+----------+-------------------------------------------------+
| my_key   | 51:47:92:7d:a1:ec:75:aa:07:3a:a8:7c:17:63:4d:6f |
| pub_key  | 91:4b:da:c4:9d:6e:2e:7e:75:60:25:2a:d5:d1:5b:99 |
+----------+-------------------------------------------------+

2) 生成自己的keypair, 名字随意取, 本例中是key0510t:

该指令的输出即为密钥:
root@cic-1:~# openstack keypair create key0510t
-----BEGIN RSA PRIVATE KEY-----
MIIEqAIBAAKCAQEAzSuh/2jslGnRKjjaVMaBN/kNTOQ/7x1etcw82eppcY3L0ls/
CaNU3GI+ldh36bIMXDwlpLVHp0D4antYKDVVNMbyTlLH0XbO+gSSF955XYV1FSLN
I0WuKtU6Gh4GoC1LaC3gpLEa5FJD+K/N5o3Z5xVseLebLbPnDCCzA6tqu4hq8M1z
t2STtbAT/GyCVmAEUR4qmGl8mRcKGnBTaC6r6o/+UYz+25IF/0yoLJEd4pNJgwRt
0xIel/KS1AVlQwxMdigsoXSN78e5kUEjof7HAk+2qzY8jAMuZKsedyoD8QrcuNPC
dE3edEqmIQiFD7lHO3CztNKc1K9CiTEVvKJWXwIDAQABAoIBABSuR0AFhYNYPzsw
S+GruK65rfuILmGd5kQQ+DlHBaXqkxb7F5mTGySzync0QLIPvms1rN2zYCudwuyI
zlQPPC17uETo1zdn8GkHOOqrBDTHFQwyW9coWOv8XkTvrd9LcYRoy3IOYBWPrUZO
AkUxGzvNzwdECqJKtglk6mZ+St3oLeHG1AE2wgdhEgzxtc8JrCLoWNNRM4Ajob3n
SgCILlWOrZRuVGFTRiwjXQKvTbIxISJ4wIPDdgT+o25uiXX3MfTtK0dArl+oCopc
RXhNZfKwZ5laQOvoAvLwWPS85ir3H0VRusCGrhDxYrS9kN5u8/ad0KyLHd44LTu1
g6trkcECggCBAM+fclFgYXz1nn0bcx3LlOrS6OeKhCg5qWrccpKdvFUfFRE/fEMC
T27AfxYUV3AU0tIIqAlhFmLpp5JOJn7xfAWwo3gvjSd0nfxCxZQP9NXRpPgkdmeo
fcWnTPtLZOlwujzjcEETqJL02P8eixKJIV6uQfThXKA6iS4cPueVUztxAoIAgQD8
+ecKKBeAiijwyM1DV0W+tjnEgEroR0e5/96ZgKeNNrVSLAh8niMQy+Fx7ZXRZfCz
e4cjFpsD0hMuhQT1fXvRbH+ouazl9thtxUROXcRBU8NhOCoogsIj4NCd5bX0c43Y
Kaz6RqA77xKk/V04ZZVCAmES58Z/sHfyU+IBeWqmzwKCAIBti0Dzsph9J9KxS5RX
OhyeMR11XN4RoyrCGQHSXasKdlXVPdvANy3Vz3a+HYlst2/sJWkTWchH8+PYC6e/
/oVjMylsthoRoTPh7xDz599UGUKjMgnO81U4veaeB898Y1+/1HhbvZWJw+nh4Smb
ZALZQ7PFEkqet4O9cmW2JlE94QKCAIEAyiSmiWcf4IaF0GGkI3tJL+tMncgmExVi
Ky5aIS68tApTOSYWYf2652EC9JZ0cK6Ud9btVQxrMdJboYCJReDPX7jjCV/U2K02
pABNZJFokQrtxHGsvlI9741lJca4bm0nmuMyZYqp3zpaG5yZMMd7TRO5nfG2m7HX
JrwAjE0I++ECggCAZF5WvDh0lus+gN48BETksoEF/2YiE8XkT6gWW5C9Hj6esFwx
vkkPZ1Hvt3U6iFHTdQ8A+kMG7kWACgsrqgkIpB3pKui66+WlyNxo+EcAa0HqziF1
qqZm9Dwk6GJ7Jb5pjQDSGB83gtvzFFrl5KjD+ZhBNNSv4KQSKxrVct5akcE=
-----END RSA PRIVATE KEY-----

3) 把密钥保持在一个文件中, 也就是key file (名字任意选取, 为方便这里和keypair的名字一样):
root@cic-1:~# vi key0510t.pem

把上面所有的内容(含第一行和最后一行的标签和符号)复制到该文件,保存退出。
再用more或cat指令检查一遍该文件:
root@cic-1:~# more key0510t.pem

4) 确认keypair:
root@cic-1:~# openstack keypair list
+----------+-------------------------------------------------+
| Name     | Fingerprint                                     |
+----------+-------------------------------------------------+
| my_key   | 51:47:92:7d:a1:ec:75:aa:07:3a:a8:7c:17:63:4d:6f |
| pub_key  | 91:4b:da:c4:9d:6e:2e:7e:75:60:25:2a:d5:d1:5b:99 |
| key0510t | 4b:79:61:3f:5d:30:97:66:e5:6f:2a:73:0e:64:11:e0 |
+----------+-------------------------------------------------+

5) 用nova boot创建VM,带上关键参数--key-name,其值就是上面的keypair:
root@cic-1:~# nova boot --flavor m1.small --image centos --key-name key0510t --availability-zone nova --nic net-name=testnet test_vm_t

检查生成的VM,获取IP地址:
root@cic-1:~# nova show test_vm_t
+--------------------------------------+----------------------------------------------------------+
| Property                             | Value                                                    |
+--------------------------------------+----------------------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                                   |
| OS-EXT-AZ:availability_zone          | nova                                                     |
| OS-EXT-SRV-ATTR:host                 | compute-1                              |
| OS-EXT-SRV-ATTR:hostname             | test-vm-t                                                |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | compute-1                               |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000407                                        |
| OS-EXT-SRV-ATTR:kernel_id            |                                                          |
| OS-EXT-SRV-ATTR:launch_index         | 0                                                        |
| OS-EXT-SRV-ATTR:ramdisk_id           |                                                          |
| OS-EXT-SRV-ATTR:reservation_id       | r-mc44804o                                               |
| OS-EXT-SRV-ATTR:root_device_name     | /dev/vda                                                 |
| OS-EXT-SRV-ATTR:user_data            | -                                                        |
| OS-EXT-STS:power_state               | 1                                                        |
| OS-EXT-STS:task_state                | -                                                        |
| OS-EXT-STS:vm_state                  | active                                                   |
| OS-SRV-USG:launched_at               | 2018-05-10T02:49:20.000000                               |
| OS-SRV-USG:terminated_at             | -                                                        |
| accessIPv4                           |                                                          |
| accessIPv6                           |                                                          |
| config_drive                         | True                                                     |
| created                              | 2018-05-10T02:49:14Z                                     |
| description                          | -                                                        |
| flavor                               | m1.small (2)                                             |
| hostId                               | 9743f1e7873f1fbc8d1a5da39df25f4a8374605f523d17a0eed53c8b |
| host_status                          | UP                                                       |
| id                                   | 804053fe-d5e5-4349-8b8c-33e2e8f8e8ff                     |
| image                                | centos (ad9e09fe-7359-4ce6-9b39-75b33fff0374)      |
| key_name                             | key0510t                                                 |
| locked                               | False                                                    |
| metadata                             | {}                                                       |
| name                                 | test_vm_t                                                |
| os-extended-volumes:volumes_attached | []                                                       |
| progress                             | 0                                                        |
| scheduler_hints                      | {}                                                       |
| security_groups                      | default                                                  |
| status                               | ACTIVE                                                   |
| tenant_id                            | bfb1b84d2d994b36985cfd306e4f8860                         |
| testnet network                      | 10.10.10.246                                             |
| updated                              | 2018-05-10T02:49:21Z                                     |
| user_id                              | c099eaacab0f452e806b59d8b89f0c74                         |
+--------------------------------------+----------------------------------------------------------+

6) 很重要的一步: 修改key file的读写属性为只读(这里已经是root用户,如果不是就加sudo):
root@cic-1:~# chmod 600 key0510t.pem

7) 用ssh -i的方式登录VM,-i所带的参数就是key file的名字:
root@cic-1:~# ssh -i key0510t.pem centos@10.10.10.246
The authenticity of host ‘10.10.10.246 (10.10.10.246)‘ can‘t be established.
ECDSA key fingerprint is 59:f9:c9:c1:4b:69:8b:3d:53:31:98:24:73:17:c6:e1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘10.10.10.246‘ (ECDSA) to the list of known hosts.
[centos@test-vm-t ~]$ ls

如果忽略了第6)步就会得到如下错误信息:

root@cic-1:~# ssh -i key0510t.pem centos@10.10.10.246
The authenticity of host ‘10.10.10.246 (10.10.10.246)‘ can‘t be established.
ECDSA key fingerprint is 59:f9:c9:c1:4b:69:8b:3d:53:31:98:24:73:17:c6:e1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘10.10.10.246‘ (ECDSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for ‘key0510t.pem‘ are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: key0510t.pem
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

注:接下来如果想用用户名加密码的方式,就修改该VM的/etc/ssh/sshd_config文件:

PasswordAuthentication yes

然后保存退出,再service sshd restart即可。这样下次就能用用户名和密码登录了。

Openstack中用keypair生成和访问虚机的方法的更多相关文章

  1. Openstack中用秘钥对(keypair)生成和访问虚机的方法

    Openstack中用镜像文件生成的image来创建虚机(VM或Instance)时, 通常不支持用户名加密码的ssh方式登录访问该VM,而是用秘钥对(keypair)方式. 这里以Centos的镜像 ...

  2. 【转载】关闭XenServer中挂起(hang)虚机的方法

    在XenServer中,碰到VM挂起(hang)的情况,也不是那么少见,而VM长时间挂起,那么很影响心情和后续的操作. 一般情况下,为了关闭VM或者重启VM,我们推荐这样的操作顺序: 进入到VM内,使 ...

  3. virt-v2v命令将ESXI 虚机迁移到OpenStack中

    一简介: virt-v2v是将外部的虚拟化平台上的虚拟机转化到可以运行的KVM平台上.它可以读取在VMware.Xen运行Hyper-V和其他虚拟机管理程序上的Windows和Linux的虚拟机,并将 ...

  4. OpenStack之虚机热迁移

    OpenStack之虚机热迁移 最近要搞虚机的热迁移,所以也就看了看虚机迁移部分的内容.我的系统是CentOS6.5,此处为基于NFS共享平台的虚机迁移.有关NFS共享服务器的搭建可以看这里. Yak ...

  5. Nova 操作汇总(限 libvirt 虚机) [Nova Operations Summary]

    本文梳理一下 Nova 主要操作的流程. 0. Nova REST-CLI-Horizon 操作对照表 Nova 基本的 CRUD 操作和 extensions: # 类别 Nova V2 REST ...

  6. KVM 介绍(8):使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机 [Nova Libvirt QEMU/KVM Live Migration]

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

  7. KVM(八)使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机

    1. QEMU/KVM 迁移的概念 迁移(migration)包括系统整体的迁移和某个工作负载的迁移.系统整理迁移,是将系统上所有软件包括操作系统完全复制到另一个物理机硬件机器上.虚拟化环境中的迁移, ...

  8. 云与备份之(1):VMware虚机备份和恢复

    本系列文章会介绍云与备份之间的关系,包括: (1)VMware 虚机备份和恢复 (2)KVM 虚机备份和恢复 (3)云与备份 (4)OpenStack 与备份 (5)公有云与备份 1. 与备份有关的V ...

  9. APP加固技术历程及未来级别方案:虚机源码保护

    传统App加固技术,前后经历了四代技术变更,保护级别每一代都有所提升,但其固有的安全缺陷和兼容性问题始终未能得到解决.而下一代加固技术-虚机源码保护,适用代码类型更广泛,App保护级别更高,兼容性更强 ...

随机推荐

  1. SqlServer 动态SQL(存储过程)中Like 传入参数无正确返回值的问题

    最近在做项目时,以动态Sql进行Like语句查询时发现应该返回的结果却一直返回空,后来发现是写法错误: 错误SQL: DECLARE @0 varchar(20) SET @0 = 'XA-LZ' S ...

  2. 深入理解 Kafka 副本机制

    一.Kafka集群 二.副本机制         2.1 分区和副本         2.2 ISR机制         2.3 不完全的首领选举         2.4 最少同步副本         ...

  3. DNS之主服务器正向区域部署流程

    正向区域:将域名解析为IP 搭建步骤 1)定义区域 2)编写区域解析库文件 3)添加记录 环境介绍 [root@dns ~]# cat /etc/centos-releaseCentOS releas ...

  4. 使用wireshark抓包分析-抓包实用技巧

    目录 使用wireshark抓包分析-抓包实用技巧 前言 自定义捕获条件 输入配置 输出配置 命令行抓包 抓取多个接口 抓包分析 批量分析 合并包 结论 参考文献 使用wireshark抓包分析-抓包 ...

  5. 一次性搞清楚线上CPU100%,频繁FullGC排查套路

    “ 处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及 Full GC 次数过多的问题. 当然,这些问题最终导致的直观现象就是系统运行缓慢,并且有大量的报警. 本文主要针对系统 ...

  6. Storm 学习之路(八)—— Storm集成HDFS和HBase

    一.Storm集成HDFS 1.1 项目结构 本用例源码下载地址:storm-hdfs-integration 1.2 项目主要依赖 项目主要依赖如下,有两个地方需要注意: 这里由于我服务器上安装的是 ...

  7. php5.3之命名空间

    在php5.3之后,php像c++那样新 命名空间. 1.在同一个文件中不能实例化同一个名字相同的类和同时包含两个不同目录下的相同文件,中包含相同的函数和常量.为了解决这个问题,因此引入了命名空间. ...

  8. Java:Web Service初入门

    前言 Web Service技术在我第一次接触,又没有实际使用时完全不理解这是什么.以为是一种类似Spring,Shiro的编程框架.后来渐渐理解,WS(即Web Service缩写)是一种通用的接口 ...

  9. 手动安装gitlab-runner

    手动安装gitlab-runner 在终端使用命令curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runn ...

  10. RDS数据库磁盘满导致实例锁定

    问题描述: 阿里云RDS空间不足,进行报警.收到报警后.对数据库中不重要的数据备份后执行delete删除操作.执行成功后发现数据删掉了.但是数据库的空间并没有释放.数据占用空间反而越来越大,最后RDS ...