it's just not used for PVE itself.
if you want to use it, feel free to install it.
sudo is not the right way to implement unprivileged services
- but of course, reducing the amount of code running in root context is something we want to do, but it's a fairly involved process given all the flexibility PVE offers (e.g., things like custom storage plugins, arbitrary storage paths, .. are all far from trivial to handle correctly with a good user experience out of the box).
as a sidenote - many many setups out there using sudo are not locked down in the fashion the admin expects, a lot of things offer practical root shells when executed via sudo, even if the sudoers config itself restricts which commands are "allowed" to be used. that doesn't mean it doesn't have its place, but it's very easy to misconfigure/misuse and give a false sense of security.
I just want to reduce the scope of my follow-up Q here to basically what I think the OP was after as well, i.e. shouldn't the root user be password-less and human admin be forced to log in under separate cred, as a starting point. He could be a general sudoer to begin with, later it could be even cut down to only PVE's CLI suite. I understand this needs couple of changes including in installer, but it's something that would increase security as in prevent at least some human error (people go copy&paste all sorts of things into that # shell).
PVE's API restricts one quite reasonably in managing the cluster, but as far as I know there's no CLI external tool to run on a separate machine as the whole architecture is monitor-less.
(if you often paste things into a shell without checking them, you will also paste things into your shell that start with "sudo").
you can use whichever API client you want, including building one that gives you a CLI interface to manage remote PVE hosts.
but like I said - making more parts of PVE run as unrestricted user, and potentially also allowing execution of the CLI tools (as the logged-in PAM user) is on our long-term agenda, it's just a massive undertaking that won't happen overnight.
EscapeChar
or BatchMode
(it's the only way, isn't it) be in ssh_config
of that particular user cleanly.