我们已经可以使用root用户进入trusty-server-cloudimg-amd64-disk1.img镜像里面了,但是当我们使用我们习惯的putty或者ssh命令时,系统又返回一个访问拒绝的提示。
no supported authentication methods available(server sent:publickey)
那么怎么才能更实用外部的putty软件来访问OpenStack的镜像呢?
在OpenStack利用镜像文件创建虚拟机实例,都事先会让用户创建一个密钥,这个虽然不是必须的,但是OpenStack是支持的,最关键的是,这个云版的Ubuntu官方镜像必须使用该方式才能访问。
在控制节点操作
1、创建ssh-keygen
2、生成密钥对nova keypair-add --pub-key ~/.ssh/id_rsa.pub admin-key
该密钥对的名称为:admin-key
接下来,我们使用OpenStack的Horzion来创建虚拟机实例时,需要选择这个密钥对信息
当然,如果有用户希望在自己的机器上SSH,也可以导入自己的密钥信息
这样,我们就通过OpenStack创建了一个已经导入密钥的虚拟机实例了,但是该虚拟机实例仍然无法SSH。我们需要在虚拟机实例进行一个设置才可以完成SSH。
虚拟机实例操作
1、需要切换到root用户下,修改/etc/ssh/sshd_config文件,将如下两项设置为 yes即可
RSAAuthentication yes
PubkeyAuthentication yes
2、虚拟机创建一个用户,例如sm
3、设置该用户的sudo权限
a、添加sudo文件的写权限,命令是:chmod u+w /etc/sudoers
b、编辑sudoers文件vi /etc/sudoers,找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
这里说下你可以sudoers添加下面四行中任意一条
youuser ALL=(ALL) ALL
%youuser ALL=(ALL) ALL
youuser ALL=(ALL) NOPASSWD: ALL
%youuser ALL=(ALL) NOPASSWD: ALL
第一行:允许用户youuser执行sudo命令(需要输入密码).
第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.
c、撤销sudoers文件写权限,命令:chmod u-w /etc/sudoers然后重启操作系统(重启服务无法生效)
控制节点操作
接下来,我们就可以在控制节点实现ssh了
例如我可以通过控制节点往云模板实例上传文件
supercloud@supercloud1:~$ scp supermap_iserver_7.1.2_linux64_deploy.tar.gz sm@192.168.12.82:/home/sm
sm@192.168.12.82's password:
supermap_iserver_7.1.2_linux64_deploy.tar.gz 100% 299MB 74.8MB/s 00:04
例如我可以直接在putty控制节点界面进行ssh云模板实例
supercloud@supercloud1:~$ ssh sm@192.168.12.82
sm@192.168.12.82's password:
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-53-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information as of Wed May 27 05:40:13 UTC 2015
System load: 0.0 Processes: 71
Usage of /: 7.7% of 9.81GB Users logged in: 1
Memory usage: 3% IP address for eth0: 192.168.12.82
Swap usage: 0%
Graph this data and manage this system at:
https://landscape.canonical.com/
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
0 packages can be updated.
0 updates are security updates.
Last login: Wed May 27 05:32:35 2015 from 192.168.12.1
$