openstack中镜像的密码修改

1 前言

本文主要讲解如何修改openstack中镜像的密码以及开启镜像的ssh登录。

openstack中的镜像登录方式主要有以下几种:

1)openstack的VNC终端密码登录;

2)ssh使用密匙登录;

3)ssh使用密码登录。

除了密匙登录其他两种都需要密码,而一般的镜像初始状态是不能使用密码登录或者说密码未知的,因此需要对镜像进行处理,处理方法有以下几种:

1)通过openstack的实例创建执行脚本修改;

2)通过直接修改镜像加入初始密码。

多数的系统镜像都加入了普通用户通过sudo su切换成root用户,原因是/etc/sudoers加入的%sudo ALL=(ALL:ALL) ALL

2 镜像处理介绍

2.1 cirros

cirros镜像是目前openstack中测试使用非常广泛的镜像,体积较小,易于使用,下载地址:https://download.cirros-cloud.net/

cirros 0.3.5的镜像账号密码为

1
2
user:cirros
pass:cubswin:)

cirros 0.4.0的账号密码为

1
2
user:cirros
password:gocubsgo

不同版本的cirros的镜像密码可能不同,但是在控制台日志中都会显示,同时该镜像也默认开启了ssh登录,可以使用账号密码登录。如无法登录记得查看镜像使用的安全组是否开始ssh访问权限

openstak-SR-ssh

登录之后使用sudo su切换成root用户,若想直接使用root用户登录,需要拷贝密钥或者修改root用户密码,拷贝密钥的命令为:

1
cp -f /home/cirros/.ssh/authorized_keys /root/.ssh/

2.2 ubuntu镜像

ubuntu系统镜像的官方下载地址为:http://cloud-images.ubuntu.com

trusty为ubuntu 14,xenial为ubuntu 16,根据自己的喜好下载镜像。

2.2.1 修改镜像

使用guestfish工具直接修改镜像[1],安装guestfish工具

1
sudo apt-get install libguestfs-tools -y

打开镜像:

1
sudo guestfish --rw -a xenial-server-cloudimg-amd64-disk1.img

挂载文件系统等操作如下图所示:

guestfish change passwd

打开/etc/cloud/cloud.cfg后修改一下内容:

1)增加ssh密码登录

disable_root的值设为false即可允许root登录,增加ssh_pwauth: true即可允许ssh密码登录。

openstack-passwd2

2)增加默认用户ubuntu的密码

lock_passwd设为false允许VNC终端密码登录,同时添加plain_text_passwd: "ubuntu"将默认用户的密码设为ubuntu

openstack-passwd3

最后,建议在/etc/issue中加入配置的密码,方便后续的人查看默认用户密码。根据参考链接[2]还可以修改/etc/passwd的第一行root:x:...root::...达到使用root用户的VNC免密登录,但是如果是ssh登录的话,需要在/etc/ssh/sshd_config中将PermitEmptyPasswords no设置为PermitEmptyPasswords yes

2.2.2 通过openstack用户数据修改密码

如果不想修改镜像也可以在openstack启动实例时通过导入用户数据的方式来修改密码,加入修改脚本如下:

1
2
3
4
5
6
7
#!/bin/sh
passwd ubuntu<<EOF
ubuntu
ubuntu
EOF
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
service ssh restart

如下图所示加入上述脚本,不同的openstack版本此处有所不同,依具体版本操作。

openstack userdata

此外还有修改openstack的nova.conf和dashboard配置的方式来加入修改密码选项[3],由于openstack的版本修改该种方式不一定可行,视具体版本处理。

2.2.3 通过cloud-init方式修改密码

cloud-init(简称ci)在AWS、Openstack和Cloudstack上都有使用,也算是事实上的云主机元数据管理标准。通过cloud-init能够对虚拟机实例进行初始化配置,当然也能修改镜像的密码。

1
2
3
4
5
6
7
#cloud-config
ssh_pwauth: yes
chpasswd:
list: |
root:123456
ubuntu:123456
expire: false

cloud-init-set-passwd

启动后的实例可以直接通过修改后的账号密码登录

2.3 centos镜像

centos官方的镜像地址为:http://cloud.centos.org/centos/7/images/

centos的镜像默认用户是”centos”,处理方式和ubuntu一样,可以通过guestfish或者在创建实例时导入脚本。

同样是使用guetsfish打开镜像然后修改/etc/cloud/cloud.cfg文件,如下图所示:

【参考链接】

1)guestfish工具修改ubuntu镜像密码

2)密码修改

3)openstack镜像密码修改

4)cloud-init介绍及源码解读(上)

-------------本文结束感谢您的阅读-------------

版权声明

Louie's Blog by louie long is licensed under a Creative Commons BY-NC-ND 4.0 International License.
Louie Long创作并维护的Louie's Blog博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Louie's Blog 博客( http://ylong.net.cn ),版权所有,侵权必究。
转载请注明作者和链接地址http://ylong.net.cn, 如对文章内容有疑问请联系邮箱( longyu805@163.com )。