VMware ESXi での SSH キーベースの認証のセットアップ

ユーザー名とパスワードのペアを使用する代わりに、SSH キーベースの認証を構成して VMware ESXi ホストにログインできます。これは、外部スクリプトを使用して ESXi ホストをリモート管理する必要がある場合 (たとえば、UPS の停電イベントでシャットダウン コマンドを ESXi に送信する場合)、または Ansible を使用して VMware ESXi ホストを管理する必要がある場合に役立ちます。

管理者のコンピュータで秘密鍵と公開鍵を生成します。最小長が 4096 ビットの RSA キーを使用してください。 Windows で長さ 4096 の RSA キー ペアを生成するには、次のコマンドを実行します。

ssh-keygen -t rsa -b 4096

Windows での SSH キーベースの認証について詳しくは、こちらをご覧ください。

こちらもお読みください:PowerShell: Exchange Online (Azure) の証明書ベースの認証を構成する

新しい OpenSSH ビルドでは RSA キーの代わりに Ed25519 プロトコルを使用することをお勧めします (一部のシステムでは libcrypto で RSA/SHA1 が無効になり始めているため、秘密キーの使いやすさをテストする場合は RSA/SHA256 を使用してください)。 ESXi 8.0 では、Ed25519 キー ペアを無効にした後のみ SSH 接続を確立できました。FipsMode noのオプション/etc/ssh/sshd_config

Ed25519 キー (id_ed25519 および id_ed25519.pub) を生成するには、次のコマンドを実行します。

ssh-keygen -t ed25519

このユーティリティは、現在のユーザーのプロファイル ディレクトリ (%USERPROFILE%\.ssh) に 2 つのファイルを作成します。

  • 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 サーバーに接続します。

ファイルを手動で編集することも (1 つのファイルに複数のキーを保存できます)、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 サーバーが含まれています。

このオプションを使用して、root アクセスを有効または無効にします。

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

Related Posts