Existem várias maneiras de resolver isso, mas todas envolvem o host ou a máquina de adivinhação participando da mesma rede.
Eu simplesmente criei um alias de ip na minha conexão gerenciada pelo gerenciador de rede wlan0 em minha rede doméstica e de trabalho (uma rede é definida pelo IP e pela máscara de sub-rede).
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether a4:c4:94:5f:00:a5 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global wlan0
valid_lft forever preferred_lft forever
inet 192.168.0.158/24 brd 192.168.0.255 scope global wlan0
valid_lft forever preferred_lft forever
inet6 fe80::a6c4:94ff:fe5f:a5/64 scope link
valid_lft forever preferred_lft forever
E o sistema operacional de adivinhação tem apenas 1 IP:
config.vm.network :public_network, bridge: "wlan0", ip: "192.168.0.159", netmask: "255.255.255.0"
Agora, quando estou em casa, posso fazer o ssh na máquina, pois tenho um alias de IP e minha NIC está participando da mesma rede que a máquina convidada. Quando estou no trabalho, ele funcionará automaticamente, pois minha NIC estará automaticamente na mesma sub-rede.