在VMware ESXI上設置基於SSH密鑰的身份驗證

Jacki

您可以配置基於SSH的基於SSH的身份驗證,以登錄到VMware ESXI主機,而不是使用用戶名和密碼對。如果您需要使用外部腳本遠程管理ESXI主機(例如,將關閉命令發送到UPS上的電動中斷事件),或者需要使用Ansible管理VMware ESXI主機,這將很有用。

在管理員的計算機上生成私鑰和公共密鑰。使用最小長度為4096位的RSA鍵。要在Windows上生成4096長的RSA鍵對,請運行命令

ssh-keygen -t rsa -b 4096

在Windows上了解有關基於SSH的基於SSH的auth的更多信息。

建議在New OpenSSH構建中使用ED25519協議,而不是RSA鍵(在測試私鑰的可用性時,使用RSA/SHA256在某些系統開始在libcrypto中禁用RSA/SHA1)。在ESXI 8.0中,我只能使用ED25519密鑰對建立SSH連接。FipsMode no選項in/etc/ssh/sshd_config

要生成ED25519密鑰(ID_ED_ED25519和ID_ED25519.PUB),請運行:

ssh-keygen -t ed25519

該實用程序在當前用戶的個人資料目錄(%userProfile%\。ssh)中創建兩個文件:

  • ID_RSA- 私鑰
  • id_rsa.pub- 公共(開放)密鑰

如果您使用puttygen工具來生成密鑰,則需要以OpenSSH格式導出它們。

將公共密鑰(ID_RSA.PUB)從計算機複製到VMware ESXI主機,必須將此密鑰添加到文件中/etc/ssh/keys-$USER/authorized_keys。如果這是root用戶的關鍵,則該文件的路徑將如下:/etc/ssh/keys-root/authorized_keys

使用SSH連接到ESXI服務器。

您可以手動編輯文件(您可以將多個鍵存儲在一個文件中),也可以使用PowerShell命令將其添加到ESXI服務器中:

cat c:\users\admin\.ssh\id_rsa.pub | ssh [email protected] 'cat >> /etc/ssh/keys-root/authorized_keys'

這 /etc/ssh/sshd_config文件包含ESXI主機上的OpenSSH服務器。

使用此選項啟用或禁用根訪問:

有關的:PowerShell:在線配置基於證書的身份驗證(Azure)

PermitRootLogin yes

關閉SSH密碼登錄:

ChallengeResponseAuthentication no # deprecated
KbdInteractiveAuthentication no
PasswordAuthentication no

ESXI上重新啟動SSH服務器:

# /etc/init.d/SSH restart

您也可以使用VMware主機配置文件要將打開的SSH鍵部署到ESXI主機(安全配置 - > root用戶的SSH授權密鑰 - >添加公共密鑰)

現在,您可以使用私鑰連接到沒有密碼的情況下連接到ESXI主機。在啟用了SSH代理的Windows計算機上,連接到主機時會自動使用來自用戶配置文件的私鑰:

ssh [email protected]

您也可以使用-i參數指定私鑰的路徑:

ssh [email protected] -i "C:\Users\administrator\.ssh\id_rsa"

現在,您可以在ESXI控制台中遠程運行任何命令。例如,關閉特定的虛擬機:

ssh [email protected] vim-cmd vmsvc/power.shutdown VMID