Packer QEMU Debian VM에서 SSH 서버를 시작할 수 없습니다.

Packer QEMU Debian VM에서 SSH 서버를 시작할 수 없습니다.

QEMU에 사전 설치된 Debian Buster 이미지를 부팅하여 배포용으로 구성하기 위해 Packer를 사용하고 있지만 Packer가 이미지를 부팅할 때마다 SSH를 통한 연결에 실패합니다.

openssh-serverDebian 이미지가 완전히 업데이트되고 설치되었으며 기본 cd install PermitRootLogin로 설정됩니다 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"
        }
    ]
}

관련 정보