QEMU에 사전 설치된 Debian Buster 이미지를 부팅하여 배포용으로 구성하기 위해 Packer를 사용하고 있지만 Packer가 이미지를 부팅할 때마다 SSH를 통한 연결에 실패합니다.
openssh-server
Debian 이미지가 완전히 업데이트되고 설치되었으며 기본 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-analyze
VNC가 연결될 때까지 정지 됩니다 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"
}
]
}