使用 ssh 登录 qemu 启动的 VM
在实验 https://github.com/int0x03/kernel-utils
的过程中, 我们最后通过 qemu
启动 img 文件, 然后通过我们预设的用户名/密码进入 shell. 但是这个shell 和启动VM 用的同一个tty, 所以系统的一些message 会源源不断的输出到这个tty, 如果你要在这个shell 改些东西, 会非常尴尬.
如何启动另外一个tty?
要启动另外一个tty, 我们可以通过 ssh
登录这个VM, 就需要安装 openssh-server
, 所以我们更改 config/env.sh
在需要安装到软件那行, 加入 openssh-server
.
改后:
packages_to_install="systemd-resolved bpftrace bpfcc-tools gdb iptables openssh-server"
另外需要本地端口做转换, 所以需要更改 qemu
的启动参数, 在 boot
文件改动如下:
netdev_args="user,id=network0,net=192.168.0.0/24 -device e1000,netdev=network0 -net nic -net user,hostfwd=tcp::2222-:22"
sshd server 默认是不让以 root 用户登录的, 所以要更改 /etc/ssh/sshd_config
运行root 访问:
PermitRootLogin yes
然后重启 sshd server
systemctl restart ssh
如何登录
在宿主机 ssh -p 2222 root@localhost