For remote access to a VM's user interface, RDP is an interesting additional option.
Of course, other usual client network access methods apply as well.
$ read RDP_USER
$ RDP_PASS=$(stty -echo; read INPUT; stty echo; echo $INPUT)
$ RDP_HASH=$(VBoxManage internalcommands
passwordhash "$RDP_PASS" | cut -d' ' -f3)
$ VBoxManage setproperty vrdeauthlibrary "VBoxAuthSimple"
$ VBoxManage modifyvm vm1
--vrdeauthtype external
--vrdeport 33891
--vrde on
$ VBoxManage setextradata vm1
"VBoxAuthSimple/users/$RDP_USER" "$RDP_HASH"