Reported via Forums: https://forum.vyos.io/t/ssh-in-vrf-fails-after-reboot/6455/2
SSH can not be started when there is no sshd_config file.
The /run/sshd directory is not always created via render() on system startup.
The corresponding systemd unit file (/lib/systemd/system/ssh.service) uses a RuntimeDirectory statement and by default, when the service stops, the runtime directory (/run/sshd) is removed.
Takes a boolean argument or restart. If set to no (the default), the directories specified in RuntimeDirectory= are always removed when the service stops. If set to restart the directories are preserved when the service is both automatically and > manually restarted. Here, the automatic restart means the operation specified in Restart=, and manual restart means the one triggered by systemctl restart foo.service. If set to yes, then the directories are not removed when the service is stopped. Note that since the runtime directory /run/ is a mount point of "tmpfs", then for system services the directories specified in RuntimeDirectory= are removed when the system is rebooted.
When running SSHd inside a VRF the daemon needs several tries to start successfully as it tries to load some bpf code (according to the systemd log https://bugzilla.redhat.com/show_bug.cgi?id=1813599), but when the service stops, the config is removed and it can no longer start -> DEADLOCK.
a simple call to sudo systemctl restart ssh fixes the issue, it is yet unclear why the service does not auto recover