如何在 Ubuntu 雲映像上設置密碼?
我正在嘗試使用 VirtualBox 開始 .ova,並希望稍後在 vSphere 中導入相同的圖像。
Ubuntu 雲映像不再有標準密碼。
我想編輯 .ova 來配置密碼。(以及後來的 SSH 密鑰)
下載的 .ova 確實具有密碼屬性。
我找到了一個名為
cot
(Common OVF tool)的工具來編輯屬性。我試過:
cot edit-properties ubuntu-18.04-server-cloudimg-amd64-custom.ova -p password=ubuntu
也試過:
cot edit-properties ubuntu-18.04-server-cloudimg-amd64-custom.ova -p user-data="password: ubuntu"
兩次嘗試都沒有成功。(無法登入)
是否有將此配置應用於圖像的步驟,或者這些屬性是否會在圖像啟動時傳遞給圖像?
有任何想法嗎?
**更新:(**背景問題的答案)
- 作為第一步,我需要 root 訪問權限,因此我可以測試適配器、網橋、路由、DNS 的網路設置。
- 具有 ssh 密鑰和 sudo 的新使用者是第二個目標。
- Ubuntu 17.10(即將發布 18.04)
- 虛擬盒子 5.2.14
- vSphere 5.5
問題
如果您可以在問題中添加背景資訊,這將很有用,例如:
- 為什麼需要設置root密碼。也許有另一種方法。你想達到什麼目的?
- 根據(1),推薦的方式可能是以下幾個選項之一:root 使用者密碼,新使用者 ssh 密鑰和 sudo,其他。)
- 你的主機作業系統是什麼?
- 虛擬機版本?
- VMWare vSphere 版本?
總體規劃
- 為 Virtualbox 設置正確的設置
- 創建使用者數據和元數據文件
- 為 cloud-init 生成 ISO 映像
- 使用附加的 ISO 映像作為可移動設備啟動 VM
虛擬盒子
- 您可以將 OVA 作為設備導入,使用 IMG 或 VMDK 磁碟。您可以在 GUI 或命令行中執行此操作。
- 您應該在虛擬機的硬體設置中啟用串列埠。或者,將其指向您家中的原始文件,以便在出現問題時查看日誌。
- 您需要下面為 cloud-init 生成的 iso/img 並將其安裝在您導入的 VM 的 dvd 或 cd 設備中。如果 VM 不包含 dvd/cd 設備,則必須添加一個。將其添加為 IDE 和 master,然後載入下面生成的 ISO。
云初始化
如果您使用的是Ubuntu Cloud Images,您應該使用Cloud-Init來設置初始配置,它允許您設置:
- 預設語言環境
- 主機名
- 生成和設置 SSH 私鑰
…除其他功能外。
Cloud-init 的行為可以通過內聯命令的使用者數據標誌或呼叫帶有要應用的設置的 YAML 類型配置文件來配置。
這可以通過內聯執行時的
--user-data
or--user-data-file
參數來完成,或者您可以使用 ISO 來完成。我將展示 ISO 掛載模式的步驟。我不會為 root 或使用者設置密碼,而是通過 ssh 公鑰創建一個具有 SSH 訪問權限的新使用者,並允許使用者 sudo 權限。
這是一個範例使用者數據云配置文件,請使用您的文本編輯器創建它,並尊重名稱,否則種子文件將不是有效的種子並且無法工作。
#cloud-config users: - default - name: eddypronk ssh-authorized-keys: - <your user public key here> sudo: ALL=(ALL) NOPASSWD:ALL groups: sudo shell: /bin/bash
您還可以擁有主機名和其他定義的元數據:
instance-id: set-an-unique-instance-name-id local-hostname: set-the-hostname
創建文件後,生成一個 iso 文件以從虛擬管理器作為 cdrom 或 dvd 載入:
genisoimage -output nocloud.iso -volid cidata -joliet -rock user-data meta-data
您需要
genisoimage
此選項或此其他選項的cloud-utils
工具cloud-localds
:cloud-localds my-seed.img my-user-data my-meta-data
請記住,如果您將種子 / nocloud iso 掛載,它將用數據文件中的設置覆蓋 VM 中的設置。如果您更改使用者數據或元數據中的任何內容,則需要重新建構 iso 或 img。
引導
您現在可以啟動 VM。預設情況下,您不能使用使用者名和密碼 ssh 到機器或通過 VNC 控制台(Virtualbox 中的“圖形”VM 視窗)連接。您必須使用 ssh 的公鑰/私鑰身份驗證方法。這意味著在使用者數據YAML 文件中啟用具有公共 ssh 密鑰的使用者。此外,ubuntu 帳戶的 sudo 權限提升是無密碼的,但預設情況下該帳戶是鎖定的。