LogoSaito Go's Blog
ホームキーワード検索プロフィール
LogoSaito Go's Blog

© 2026 Saito Go's Blog. All rights reserved.

ホームに戻る

Proxmoxで構築したKali VMにcloud-initを導入する方法

ProxmoxKalicloud-init
2026/06/26
2026/07/15

ProxmoxでKali LinuxのVMを構築した時、デフォルトでcloud-initが導入されていないので、IPアドレスなどはターミナルや設定ファイルの直接編集から変更する必要があります。

LXCは最初からProxmoxのWeb UI上でIPアドレスを変更できますが、VMの場合はcloud-initの導入が必要になります。

なので今回はProxmox上にISOから構築したKali LinuxのVMにcloud-initとQEMU Guest Agentを導入し、ProxmoxのWeb UI上からcloud-initを使ってIPアドレスなどを設定する手順を解説します。

検証環境

  • Proxmox VE 9.x
  • Kali Linux 2026.1

前提条件

  • Proxmox VEにKali LinuxのVMがISOからインストール済みであること
  • VMに対してコンソールまたはSSHでアクセスできること
  • sudo権限を持つユーザーでログインしていること

手順

1. パッケージのインストール

VMにログインし、必要なパッケージをインストールします。

# パッケージ更新
sudo apt update && sudo apt upgrade -y

# cloud-init本体・qemu-guest-agentをインストール
sudo apt install -y cloud-init qemu-guest-agent
パッケージ 役割
cloud-init VM起動時にネットワーク・SSH鍵・ユーザーなどを自動設定するプロビジョニングツール
qemu-guest-agent Proxmoxホストと VM間の通信(シャットダウン制御・IP取得など)を担うエージェント

2. サービスの有効化

SSHとcloud-initのサービスを自動起動に設定します。
Kali LinuxはデフォルトでがSSHが無効なため、必ず有効化してください。

# SSHサービスを有効化(Kaliはデフォルト無効のため必須)
sudo systemctl enable ssh.service

# cloud-initサービスを有効化
sudo systemctl enable cloud-init-main

cloud-init-mainはKali/Debian系におけるcloud-initのメインサービスユニット名です。 systemctl list-units 'cloud-init*'で有効なユニット名を確認できます。

3. VMのシャットダウン

設定が完了したらVMをシャットダウンします。
Proxmox Web UIの「シャットダウン」ボタン、またはコマンドで実行してください。

# VM内から実行
sudo shutdown -h now

Proxmoxホスト側からCLIで実行する場合:

# <VMID>は対象VMのIDに置き換える
qm shutdown <VMID>

4. Cloud-Initドライブの追加

  1. Proxmox Web UIで対象VMを選択
  2. 「Hardware」タブを開く
  3. 「Add」→「CloudInit Drive」をクリック
  4. Storageを選択して「Add」

Proxmox Web UI - Cloudnit Drive追加

Cloud-InitドライブはISOイメージとしてVMにマウントされ、起動時にcloud-initがそこから設定を読み込みます。

5. QEMU Guest Agentの有効化

  1. 対象VMの「Options」タブを開く
  2. 「QEMU Guest Agent」をダブルクリック
  3. 「Use QEMU Guest Agent」にチェックを入れて「OK」

Proxmox Web UIの対象VM「Options」タブを開いた状態。「QEMU Guest Agent」の行がハイライトされており、ダブルクリックすると開くダイアログで「Use QEMU Guest Agent」チェックボックスにチェックが入っている様子

6. Cloud-Initパラメータの設定

  1. 対象VMの「Cloud-Init」タブを開く
  2. 以下のパラメータを設定する
  3. 設定後、VMを起動する
パラメータ 説明 例
User ログインユーザー名 kali
Password ログインパスワード (任意)
DNS domain DNSサーチドメイン local
DNS serers ネームサーバー 1.1.1.1
SSH public key パスワードレスログイン用の公開鍵 ~/.ssh/id_ed25519.pubの内容
IP Config dhcpまたは静的IP ip=dhcp

Proxmox Web UIのVM「Cloud-Init」タブ全体のスクリーンショット

7. 動作確認・IP確認

VM起動後、以下の方法でcloud-initとGuest Agentが正常に機能しているか確認します。

Proxmox Web UIでのIP確認

VMの「Summary」タブにIPアドレスが表示されれば、QEMU Guest Agentが正常に動作しています。

Proxmox Web UIのSummaryタブでIPアドレスを確認

VM内での確認

# cloud-initの実行ログを確認
sudo cloud-init status --long

# 付与されたIPアドレスを確認
ip addr show

# QEMU Guest Agentの動作確認
sudo systemctl status qemu-guest-agent

SSH接続確認

# SSH接続テスト
ssh <ユーザー名>@<VMのIPアドレス>

トラブルシューティング

cloud-initが再実行されない

cloud-initはデフォルトで「初回起動時のみ」実行されます。 再実行したい場合はキャッシュをクリアしてから再起動してください。

sudo cloud-init clean --logs
sudo reboot

QEMU Guest Agentが応答しない

QEMU Guest Agentサービスが起動しているか確認します。

sudo systemctl start qemu-guest-agent
sudo systemctl status qemu-guest-agent

Proxmoxの「Options」でQEMU Guest Agentが有効になっているかも再確認してください。

SSHに接続できない

Kaliは/etc/ssh/sshd_configでパスワード認証がデフォルト無効の場合があります。

# /etc/ssh/sshd_config を確認・編集
sudo nano /etc/ssh/sshd_config
# 以下を確認または変更
# PasswordAuthentication yes
# PermitRootLogin no

sudo systemctl restart ssh

まとめ

今回はISOからインストールしたKali Linux VMに、cloud-initとQEMU Guest Agentを後から導入し、Proxmox Web UIからネットワーク設定を管理できるようにする手順を解説しました。

作業の流れを振り返ると、以下のようになります。

  1. VM内でcloud-init・qemu-guest-agentをインストールし、必要なサービスを有効化
  2. VMをシャットダウンし、Proxmox Web UIからCloud-InitドライブとQEMU Guest Agentを追加・有効化
  3. 「Cloud-Init」タブでIPアドレスやSSH鍵などを設定してVMを起動

これにより、LXCコンテナと同じ感覚でVMのネットワーク設定をWeb UIから一元管理できるようになります。Kali Linux特有のSSHデフォルト無効という挙動に注意しつつ、cloud-initのキャッシュ仕様(初回起動時のみ実行)も覚えておくと、再設定時のトラブルを防げます。

Kali以外のディストリビューションでも基本的には同様の手順でclout-initの導入が出来るので、ぜひお試しください。

Saito Go

Saito Go

Blog Owner

大手製造業の現場で働きながら趣味でWeb系エンジニアやってます。

当サイトはアフィリエイト広告を使用しています。

目次

検証環境前提条件手順1. パッケージのインストール2. サービスの有効化3. VMのシャットダウン4. Cloud-Initドライブの追加5. QEMU Guest Agentの有効化6. Cloud-Initパラメータの設定7. 動作確認・IP確認トラブルシューティングcloud-initが再実行されないQEMU Guest Agentが応答しないSSHに接続できないまとめ