CentOS为各种不同的云环境提供cloud images,比如OpenStack,RHV,AZure,或KVM. 一般来说,是通过cloud-init工具来修改用户密码或SSH keys。但是那似乎不太方便。下面是一种方便的方法。
官方的CentOS的cloud image的下载地址是:
http://cloud.centos.org/centos/7/images/
第一步,安装软件libguestfs-tools
sudo yum install libguestfs-tools
或
sudo apt install libguestfs-tools
或
sudo dnf install libguestfs-tools
第二步,设定一个固定密码
sudo virt-customize -a CentOS-7-x86_64-GenericCloud-1703.qcow2 --root-password password:passw0rd
结束。
这一步也可以设一个随机密码:
sudo virt-customize -a CentOS-7-x86_64-GenericCloud-1703.qcow2 --root-password random
[ 0.0] Examining the guest ...
[ 11.2] Setting a random seed
[ 11.2] Setting passwords
virt-customize: Setting random password of root to 132Tfe6cfCCr8Pv8
[ 12.2] Finishing off
这一步还可以是这样:安装或删除package,甚至同时设置自己的SSH key
sudo virt-customize -a CentOS-7-x86_64-GenericCloud-1703.qcow2 --install epel-release --ssh-inject centos:string:"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKCqX6EZIrGHoGaMII4QAqr0QC72t+Kg/c5ZIRNTMb6Q+BwzejQgjhBTXeyPnp0rfE9XI4pTxkZqAUOGSK9Bfqg= smiller@bruckner"
[注]
以上的文章完结了。但在实际使用过程中,往往我们还希望能够ssh到这个cloud image的instance上。此时发现cloud image默认是不允许用root以及密码进行登录的。那么解决办法就是:
1.编辑 /etc/ssh/sshd_config 文件,将其中的下面2句话释放出来:
PermitRootLogin yes
PasswordAuthentication yes
2.重启sshd
(完)