openstack中鏡像的密碼修改


注意:

1.因為版本原因,實際試驗的image是bionic-server-cloudimg-amd64.img,只有使用guestfish工具直接修改鏡像[1]管用,其他方法以及失效。

2. 在參考 獲取 metadata 的完整例子 - 每天5分鍾玩轉 OpenStack(166)里面的步驟,創建網絡后,使用 cloud-init方式才修改登錄密碼成功
 

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介紹及源碼解讀(上)

5) openstack中鏡像的密碼修改

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM