我如何使用最小 configuration/infrastructure ssh 进入 KVM?

How do I ssh into a KVM with minimal configuration/infrastructure?

根据 another QA,可以用最少的基础设施设置一个 Ubuntu KVM,直接使用 qemu / kvm(没有 virsh 或任何这样的)。

缺少的是 ssh 进入它的能力。 (使用默认的串行控制台很慢,一些键绑定不起作用,例如,无法使用 control+A[=32= 转到行首].)

在不设置额外的桥接网络、防火墙规则或配置文件的情况下,将主机上的单个端口(例如 8022)绑定到虚拟化端口(例如 22)上的给定端口的最简单的 hackish 方法是什么?

我能想到的最简单的非 KVM 特定方法是使用 ssh 从客户机通过 ssh 返回主机,并使用 [=19= 的 -R [bind_address:]port:host:hostport 选项],例如 ssh -R "8022:[::1]:22" guest@10.0.2.2,但这需要在主机上设置一个新用户并在主机和来宾之间共享登录凭据。有没有更简单的方法?

P.S。 guest 上的网络已经可以工作了,你已经可以从guest 访问主机,但是我找不到通过IP 从主机内部访问guest 的方法(无需设置复杂的桥接网络)。

答案似乎很简单 — 根据 https://unix.stackexchange.com/questions/124681/how-to-ssh-from-host-to-guest-using-qemu,只需将以下内容添加到 kvm 选项,即可将主机上的端口 1810 转发到 22关于客人:

-net nic -net user,hostfwd=tcp::1810-:22

例如,

kvm -m 2048 -smp 2 -hda ubuntu-18.10-server-cloudimg-amd64.img -hdb user-data.img -net nic -net user,hostfwd=tcp::1810-:22 -nographic

然后你可以ssh进入机器ssh ubuntu@localhost -p1810