Virtio RNG 是半虛擬化的隨機號碼產生器。Virtio RNG 會從虛擬機器 (VM) 執行個體主機產生的熵集區提供隨機號碼。熵池會從系統收集隨機資訊位元,並使用這些資訊產生真正隨機的數字,可用於 SSH 金鑰或專屬 ID 等機密資訊。
事前準備
-
如果尚未設定驗證,請先完成設定。
「驗證」是指驗證身分的程序,確認您有權存取 Trusted Cloud by S3NS 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列任一選項,向 Compute Engine 進行驗證:
-
安裝 Google Cloud CLI,然後 使用同盟身分登入 gcloud CLI。 登入後,執行下列指令初始化 Google Cloud CLI:
gcloud init
- Set a default region and zone.
-
限制
- Windows 映像檔不支援 Virtio RNG。
- 根據預設,Compute Engine VM 會使用 Virtio RNG,而非精靈,重新填入訪客熵集區。如果您偏好使用熵收集精靈,而非 Virtio RNG,或想同時使用兩者,就必須安裝熵收集精靈。如需熵收集精靈的範例,請參閱
rng-tools
說明文件。
檢查 Virtio RNG 是否已啟用
如要檢查 VM 是否已啟用 Virtio RNG,請執行下列指令:
lsmod | grep rng
啟用 Virtio RNG 後,輸出內容會類似如下:
virtio_rng 16384 0 rng_core 16384 2 virtio_rng virtio_ring 28672 4 virtio_rng,virtio_scsi,virtio_pci,virtio_net virtio 16384 4 virtio_rng,virtio_scsi,virtio_pci,virtio_net
測試 Virtio RNG
你可以使用 /dev/random
裝置測試 Virtio RNG。
使用 SSH 連線至 VM。舉例來說,您可以使用 gcloud CLI 連線:
gcloud compute ssh VM_NAME
將您的 VM 名稱替換為
VM_NAME
。安裝
rng-tools
:CentOS
使用下列指令安裝
rng-tools
:sudo yum install rng-tools
Debian
使用下列指令安裝
rng-tools
:sudo apt install rng-tools
Fedora CoreOS
使用下列指令安裝
rng-tools
:sudo yum install rng-tools
RHEL
使用下列指令安裝
rng-tools
:sudo yum install rng-tools
SLES
使用下列指令安裝
rng-tools
:sudo zypper install rng-tools
Ubuntu LTS
使用下列指令安裝
rng-tools
:sudo apt install rng-tools
部分 Ubuntu 映像檔會傳回
Package 'rng-tools' has no installation candidate
錯誤。如果收到這則錯誤訊息,請執行下列指令:sudo apt update sudo apt install rng-tools
在 VM 上執行
rngtest
指令:cat /dev/random | rngtest -c 1000
如果未啟用 Virtio RNG,指令不會傳回任何內容。如果已啟用,您會收到類似以下的回覆:
rngtest 2-unofficial-mt.14.. rngtest: starting FIPS tests... rngtest: bits received from input: 20000032 rngtest: FIPS 140-2 successes: 1000 rngtest: FIPS 140-2 failures: 0 rngtest: FIPS 140-2(2001-10-10) Monobit: 0 rngtest: FIPS 140-2(2001-10-10) Poker: 0 rngtest: FIPS 140-2(2001-10-10) Runs: 0 rngtest: FIPS 140-2(2001-10-10) Long run: 0 rngtest: FIPS 140-2(2001-10-10) Continuous run: 0 rngtest: input channel speed: (min=4.801; avg=7.318; max=7.839)Mibits/s rngtest: FIPS tests speed: (min=39.005; avg=69.557; max=72.523)Mibits/s rngtest: Program run time: 2880954 microseconds
後續步驟
- 進一步瞭解 Virtio RNG
- 進一步瞭解
/dev/random
- 如要進一步瞭解 Compute Engine 提供的映像檔,請參閱作業系統詳細資料