Mit sudo kannst du genauso gut arbeiten bzw. mit su könntest du sowieso in den root wechseln (su steht für switch user, default ist der root user). Du musst nur aufpassen, das der jeweilige Benutzer auch in der sudo Liste steht (/etc/sudoers). Also zuerst den neuen Benutzer ausprobieren, bevor man sich den einzigsten funktionierenden Zugang sperrt ;-).
Die Idee ist folgende: Mit sudo erhält der aktuelle User Root-Rechte für diese eine Anwendung (z.B. im Terminal, aber auch nur für ne gewisse Zeit). Mit su kannst du hingegen zu jeden beliebigen User wie z.B. root wechseln. Das sollte man eher nicht machen, sudo ist da deutlich "eleganter". Dieses sudo hat Microsoft ab Windows Vista quasi auch implementiert. Dieses UCC ist nichts anders als eine Anfrage nach Administrationsrechten ohne den eigentlichen User zu wechseln. Näheres wieder unter wiki.ubuntuusers.de (
http://wiki.ubuntuusers.de/sudo).
Du kannst mit gksu übrigens ganze Anwendungen über SSH starten und auf dem Client graphisch anzeigen lassen. Recht praktisch :-). Die Anwendung läuft auf dem Server, das graphische Frontend wird jedoch auf dem Client angezeigt.
In der sshd_config kannst du den root deaktivieren. Weiß nciht genau welcher Flag, ist jedoch selbsterklärend. Im Notfall suchst du einfach mal in Internet. In der seleben Datei kannst du auch den SSH Port ändern. Für ne VM ist das naütlrich alles nicht notwendig. Wenn du den Port änderst, musst du den Port mit spezifizieren. Näheres steht in "man ssh". Den Benutzer musst du ebenfalsl mit angeben. Würde dann z.B. so gehen: "ssh user@IP". Den Passwortzugriff deaktivierst du ebenfalls in der sshd_config. Davor musst du dir jedoch ein Key anlegen und diesen in /etc/ssh hinterlegen.
Ja, ein Schlüssel ist relativ sicher. Die 128, 256 Bit oder mehr sind schon sehr schwer (lies: "unmöglich") mit Brute Force oder Dictionary Angriffen zu knacken. Wenn der Loginname und der Port nicht bekannt ist, ist es aber so schon fast unmöglich, außer jemand forscht dich gezielt.