現場環境:CentOS 6.8(KVM)/ Kali linux (Client)
套件:Virtual Machine Management
原因:
這幾年虛擬化發展的很全方位,各家廠商的虛擬化都越做越好。
但企業使用上都會有費用的問題需要去思考。
這時候首選就不會是要付費的虛擬化而是開源的軟體。
通常會選用: Openstack 、KVM等開源的方法。
這次就要來說一下怎麼管理遠端的KVM中的虛擬主機。
處理方式:
既然都要裝管理軟體了,
不如就把KVM的相關套件都裝起來。
先透過指令確認是否可運行KVM
#egrep -c 'vmx\|svm' /proc/cpuinfo
只要出來數字超過1,就是可以運行虛擬化。
安裝軟體套件
#apt-get install kvm virtinst python-libvirt virt-viewer virt-manager bridge-utils
如果安裝有問題更新一下source,
#apt-get clean apt-get update && apt-get upgrade && apt-get dist-upgrade
然後重新運作一次。
來檢查一下libvirtd有沒有正常再運作了
#systemctl status libvirtd
=!==========================
● libvirtd.service - Virtualization daemon
Loaded: loaded (/lib/systemd/system/libvirtd.service; disabled; vendor preset
Active: active (running) since Fri 2017-09-29 09:49:49 CST; 38min ago
=!==========================
我們用圖形化方式管理KVM,雖然也可以用指令但是太麻煩。
#virt-manager
點選左上角的圖示,可以開心的虛擬主機。
或者按「File」 → 「New Virtual Machine」
建立虛擬主機都是圖形化,所以不特別說明。
這邊要說的是透過
本機的Virtual Machine Manager去管理Server上的KVM。
「File」 → 「Add Connection」
這邊可以選擇連線到遠端的KVM主機,也可以設定自動連線。
HyperVisor那邊也蠻多種的,也有Xen可以選。
Method那裡,除了SSH外,還有TCP(kernbors)跟SSL/TLS可以選。
這邊我們試著用SSH對遠端的KVM進行連線看看。
第一次連線時發生錯誤:
原因是缺乏連線驗證密碼的套件。
這邊有兩個作法,
1.你再開virt-manager時,帶上參數--no-fork。
#virt-manager --no-fork
(不推薦使用)
2. 安裝detail訊息說的套件,
套件名稱是 ssh-askpass-gnome。
讓他跳出圖形化的輸入密碼的畫面。
#apt-get install ssh-askpass-gnome --no-install-recommends
再次進行連線測試,可以進行密碼驗證了
但是這個驗證視窗,你之後每次要連線都會跳出來,
所以要做一個SSH連線過去不用密碼的功能省去麻煩。
(1) 製作client端的金鑰
#ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):(設定密碼)
Enter same passphrase again: (驗證密碼)
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:…………………………..
The key's randomart image is:
+---[RSA 2048]----+
……………..
+----[SHA256]-----+
(2)複製檔案
我們的金鑰檔案放在[ /root/.ssh/]下
#ls -l /root/.ssh/
=!===================================
-rw------- 1 root root 1766 Sep 29 11:46 id_rsa
-rw-r--r-- 1 root root 395 Sep 29 11:46 id_rsa.pub
=!===================================
把公開金鑰放到Server端[KVM]
#scp ~/.ssh/id_rsa.pub root@[Servr IP位址]:/root/.ssh/
(3)到Server端設定金鑰
先把我們的公開金鑰放到authorized_keys
#cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
再設定他權限為600,只有root可以讀寫。
#chmod 600 /root/.ssh/authorized_keys
接著就可以不用密碼就登入。
(4) 測試連線
#ssh root@[Server IP位址]
如果你剛才在製作金鑰時有輸入密碼。
那你的第一次連線,
就會被要求輸入金鑰的密碼才可以連線。
成功連線驗證後,要再把「authorized_keys」改成400
變成唯讀權限,不然可以寫入太危險了。
並且把我們的id_rsa.pub移除掉,這樣才安全。
#chmod 400 /root/.ssh/authorized_keys
#rm -rf /root/.ssh/id_rsa.pub
之後你就可以連接到KVM主機不用密碼了!!!
上述是用Virtual Machine Manager
透過 SSH的方式進行連線管理才能達到免用密碼的狀況。
供大家參考。
(本篇完)
參考網址:
http://www.lijyyh.com/2015/12/linux-kvm-set-up-linux-kvm.html
http://blog.itist.tw/2015/03/login-ssh-server-without-username-and-password.html