Packer QEMU Debian VM で SSH サーバーを起動できません。

Packer QEMU Debian VM で SSH サーバーを起動できません。

QEMUにプリインストールされているDebian Busterイメージを起動して配布用に設定するためにPackerを使用していますが、Packerがイメージを起動するたびにSSHを介した接続が失敗します。

openssh-serverDebianイメージは完全に更新されインストールされ、デフォルトのcd installPermitRootLoginに設定されていますyes。 Packer はイメージを起動して SSH 経由で接続しようとしますが、VNC に接続するまで SSH サーバーは起動しません。

以下は、実行中のQEMUコマンドです。

/usr/bin/qemu-system-x86_64 -name packer-qemu -machine type=pc,accel=tcg -netdev user,id=user.0,hostfwd=tcp::3841-:22 -device virtio-net,netdev=user.0 -drive file=image/packer-qemu,if=virtio,cache=writeback,discard=ignore,format=qcow2 -boot c -m 1024 -vnc 127.0.0.1:0

複数のシステムと複数のバージョンのQEMUでこの問題を確認しました。

QEMUコマンドを直接実行すると、Packerなしで問題を再現できます。

systemd-analyzeVNCが接続されるまで停止しますssh.service

SSHサーバーをデバッグモードに設定した場合分離されたディレクトリの権限がありません:/run/sshd間違い。このディレクトリは、VNC接続があり、SSHサーバーがデバッグ状態にない場合に存在します。

私の直感では、QEMUはコンソールポートのようなものを生成しないようですが、どのように修正するのかわかりません。

これは私のパッケージファイルです。

{
    "builders": [
        {
            "type": "qemu",

            "iso_url": "file:/home/user/buster.img",
            "iso_checksum_type": "none",
            "disk_image": "true",

            "vm_name": "base.raw",
            "headless": "true",
            "cpus": "1",
            "memory": "1024",
            "boot_wait": "2m",
            "shutdown_command": "systemctl poweroff",

            "ssh_timeout": "2m",
            "ssh_username": "root",
            "ssh_password": "password",

            "output_directory": "image"
        }
    ]
}

関連情報