1、下载官网qcow2镜像文件

wget http://172.16.20.10/vmtemplate/KVM/wangrui/Debian/debian-10.2.0-openstack-amd64.qcow2

镜像文件信息

[debian-10.2-cloud]
name=Debian 10.2.0 (Buster) Cloud
osinfo=debian10
arch=x86_64
file=debian-10.2.0-openstack-amd64.qcow2
checksum[sha512]=296ad8345cb49e52464a0cb8bf4365eb0b9e4220c47ebdd73d134d51effc756d5554aee15027fffd038fef4ad5fa984c94208bce60572d58b2ab26f74bb2a5de
format=qcow2
size=566434304
revision=20191116
notes=Debian 10.2.0 (Buster).

 This is a Debian installation, suited for running as OpenStack guest.

2、使用openssl passwd -1 123456生成加密的密码:-1表示使用MD5算法对密码123456进行加密

[root@support01 ~]# openssl passwd -1 123456
$1$HDUWloxk$IZuLRX39Oa31T4YzCrCHL1

3、使用guestfish命令修改root账户密码,开启ssh远程登录

guestfish --rw -a debian-10.2.0-openstack-amd64.qcow2

进入交互命令界面依次执行run、list-filesystems、mount等指令

Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.

Type: 'help' for help on commands
      'man' to read the manual
      'quit' to quit the shell

><fs> run
><fs> list-filesystems
/dev/sda1: ext4
><fs> mount /dev/sda1 /
><fs>

编辑/etc/shadow,修改root账户的密码

><fs> vi /etc/shadow
root:*:18216:0:99999:7:::
daemon:*:18216:0:99999:7:::
bin:*:18216:0:99999:7:::
sys:*:18216:0:99999:7:::
sync:*:18216:0:99999:7:::
games:*:18216:0:99999:7:::
man:*:18216:0:99999:7:::
lp:*:18216:0:99999:7:::
mail:*:18216:0:99999:7:::
news:*:18216:0:99999:7:::
uucp:*:18216:0:99999:7:::
proxy:*:18216:0:99999:7:::
www-data:*:18216:0:99999:7:::
backup:*:18216:0:99999:7:::
list:*:18216:0:99999:7:::
irc:*:18216:0:99999:7:::
gnats:*:18216:0:99999:7:::
nobody:*:18216:0:99999:7:::
_apt:*:18216:0:99999:7:::
systemd-timesync:*:18216:0:99999:7:::
systemd-network:*:18216:0:99999:7:::
systemd-resolve:*:18216:0:99999:7:::
messagebus:*:18216:0:99999:7:::
unscd:*:18216:0:99999:7:::
ntp:*:18216:0:99999:7:::
sshd:*:18216:0:99999:7:::

将root:后面的第一个*替换为第二步加密之后的密码

替换后第一行为/etc/shadow第一行为

root:$1$HDUWloxk$IZuLRX39Oa31T4YzCrCHL1:18216:0:99999:7:::

编辑/etc/ssh/sshd_config,开启root账户ssh登录,在vi中:set number开启行号

><fs> vi /etc/ssh/sshd_config

第32行

#PermitRootLogin prohibit-password

释放掉注释,并修改值为yes,调整完之后第32行为

PermitRootLogin yes

第56行

#PasswordAuthentication yes

释放掉注释,调整完之后第56行为

PasswordAuthentication yes

编辑/root/.bashrc,开启ssh语法高亮以及内置命令别名等,1、3、4、8、15行为说明注释,除此之外释放所有注释

><fs> vi /root/.bashrc

编辑之前内容为:

# ~/.bashrc: executed by bash(1) for non-login shells.

# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
# umask 022

# You may uncomment the following lines if you want `ls' to be colorized:
# export LS_OPTIONS='--color=auto'
# eval "`dircolors`"
# alias ls='ls $LS_OPTIONS'
# alias ll='ls $LS_OPTIONS -l'
# alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'

编辑之后内容为:

# ~/.bashrc: executed by bash(1) for non-login shells.

# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
umask 022

# You may uncomment the following lines if you want `ls' to be colorized:
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

最后执行quit命令退出guestfish,将qcow2镜像文件注册到openstack,投递虚拟机实例即可

参考链接:

https://docs.openstack.org/image-guide/modify-images.html#guestfish

https://blog.51cto.com/superzhangqiang/1705678

https://blog.csdn.net/weixin_42551369/article/details/88946622

http://www.chenshake.com/openstack-mirror-and-password/ 

12-20 06:20