Lösung 1:
Ich denke, ich würde das aus der anderen Richtung angehen - verwenden Sie 'command=' für den Eintrag des öffentlichen Schlüssels in Ihrer ~/.ssh/authorized_keys-Datei auf dem Remote-Server, um Ihren "su -"-Befehl auszuführen.
Verwenden/referenzieren Sie dann einfach den privaten Schlüssel in Ihrer Datei ~/.ssh/config (Option IdentityFile) für jeden Host/Alias ("myserver-root"), mit dem Sie auf diese Weise arbeiten möchten.
Die verfügbaren Optionen inauthorized_keys(5) sind in sshd(8) dokumentiert.
Lösung 2:
Benutze die Macht Luke!
Verwenden Sie RequestTTY force
in Ihrem ~/.ssh/config
für den gewünschten Host.
übrigens. dies wird auch hier besprochen https://unix.stackexchange.com/questions/27713/ssh-config-way-to-spectify-pseudo-tty-allocation-and-command-execution-like-sc/294468#294468
Lösung 3:
Warum fügen Sie einem Verzeichnis in Ihrem Pfad (oder einem Alias dafür) nicht ein Skript mit dem Namen rssh hinzu, wie:
#!/bin/bash
ssh $1 -t 'su -'
Dann ist es nur:
rssh myServer