wsl如何ssh到qemu

Posted by 婷 on October 3, 2023 本文总阅读量

wsl配置

确保wsl有安装ssh相关软件,这里就不赘述了

sudo apt-get install ssh
sudo apt-get install openssh-client

qemu启动脚本配置

qemu的启动脚本中增加一句

-net user,hostfwd=::2222-:22 -net nic

这句话的意思是,将qemu22号端口映射到host(也就是wsl)的2222端口,启动qemu之后可以在wsl这边看到

image-20231003180504792

完整的启动脚本如下所示

run_qemu_debian(){
		cmd="$QEMU -m 1024 -cpu max,sve=on,sve256=on -M virt,gic-version=3,its=on,iommu=smmuv3\
			-nographic $SMP -kernel arch/arm64/boot/Image \
			-append \"$kernel_arg $debug_arg $rootfs_arg $crash_arg $dyn_arg\"\
			-drive if=none,file=$rootfs_image,id=hd0\
			-device virtio-blk-device,drive=hd0\
			--fsdev local,id=kmod_dev,path=./kmodules,security_model=none\
			-device virtio-9p-pci,fsdev=kmod_dev,mount_tag=kmod_mount\
			-net user,hostfwd=::2222-:22  -net nic\
			$DBG"
		echo "running:"
		echo $cmd
		eval $cmd

}

qemu配置

启动qemu之后,还要在我们qemu模拟的debian中做好ssh相关的配置,在/etc/ssh/sshd_config中加上一句

PermitRootLogin yes

image-20231003122759803

然后重启ssh相关服务

sudo service ssh restart

wsl连接

输入命令,输入密码后即可连接

ssh -p 2222 root@0.0.0.0

image-20231003181508741

这里选择的是0.0.0.0这个IP是因为netstat -anp中显示的是

tcp        0      0 0.0.0.0:2222            0.0.0.0:*               LISTEN      44/qemu-system-aarc

参考链接

  • 链接一

    宿主机要通过ssh访问虚拟机有两种网络配置方式,一种是用户模式网络,另一种是网桥网络模式。前面的我们使用的是第一种,这个参考链接还介绍了怎么用网桥桥接的方式。