SSH 服务器无法在 Packer QEMU Debian VM 中启动

SSH 服务器无法在 Packer QEMU Debian VM 中启动

我使用 Packer 启动 QEMU 上预安装的 Debian Buster 映像来配置它进行部署,但每当 Packer 启动该映像时,它都无法通过 SSH 连接。

Debian 映像是默认的 cd install 完全更新并已openssh-server安装并PermitRootLogin设置为yes. Packer 将启动映像并尝试通过 SSH 连接,但 SSH 服务器在我连接到 VNC 之前不会启动。

这是正在运行的 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 确认了这个问题。

我可以在没有 Packer 的情况下重现该问题,只需自己运行 QEMU 命令即可。

查看systemd-analyze,它ssh.service会一直挂起,直到 VNC 连接为止。

如果我将 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"
        }
    ]
}

相关内容