注意:
1.因為版本原因,實際試驗的image是bionic-server-cloudimg-amd64.img,只有使用guestfish工具直接修改鏡像[1]管用,其他方法以及失效。
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 |
user:cirros |
cirros 0.4.0的賬號密碼為
1 |
user:cirros |
不同版本的cirros的鏡像密碼可能不同,但是在控制台日志中都會顯示,同時該鏡像也默認開啟了ssh登錄,可以使用賬號密碼登錄。如無法登錄記得查看鏡像使用的安全組是否開始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 |
掛載文件系統等操作如下圖所示:
打開/etc/cloud/cloud.cfg
后修改一下內容:
1)增加ssh密碼登錄
將disable_root
的值設為false
即可允許root登錄,增加ssh_pwauth: true
即可允許ssh密碼登錄。
2)增加默認用戶ubuntu的密碼
將lock_passwd
設為false
允許VNC終端密碼登錄,同時添加plain_text_passwd: "ubuntu"
將默認用戶的密碼設為ubuntu
。
最后,建議在/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 |
!/bin/sh |
如下圖所示加入上述腳本,不同的openstack版本此處有所不同,依具體版本操作。
此外還有修改openstack的nova.conf和dashboard配置的方式來加入修改密碼選項[3],由於openstack的版本修改該種方式不一定可行,視具體版本處理。
2.2.3 通過cloud-init方式修改密碼
cloud-init(簡稱ci)在AWS、Openstack和Cloudstack上都有使用,也算是事實上的雲主機元數據管理標准。通過cloud-init能夠對虛擬機實例進行初始化配置,當然也能修改鏡像的密碼。
1 |
cloud-config |
啟動后的實例可以直接通過修改后的賬號密碼登錄
2.3 centos鏡像
centos官方的鏡像地址為:http://cloud.centos.org/centos/7/images/
centos的鏡像默認用戶是”centos”,處理方式和ubuntu一樣,可以通過guestfish或者在創建實例時導入腳本。
同樣是使用guetsfish打開鏡像然后修改/etc/cloud/cloud.cfg
文件,如下圖所示:
【參考鏈接】
2)密碼修改