Die normale Art, eine Verbindung zu einem SSH-Server herzustellen, ist ssh username@ip_address. Ein Benutzer möchte jedoch möglicherweise nur ein Programm auf dem Remotecomputer ausführen. Der Programmname folgt also nach dem normalen Argument ssh username@ip_address <program_name>. Zum Beispiel ssh username@ip_address ls. Dieses Argument ist in Ordnung, mit Ausnahme interaktiver Programme (die auch Benutzereingaben akzeptieren und Ausgaben bereitstellen), z top. Die Ausgabe ist
TERM-Umgebungsvariable nicht festgelegt.
Dies bedeutet, dass kein (Pseudo-) Terminal zwischen dem sshd- und dem top-Programm angeschlossen ist. Die Lösung besteht darin, ein Argument hinzuzufügen, -tbei dem der gesamte Befehl jetzt wird ssh -t username@ip_address top.
Meine Frage ist, warum sshd nicht standardmäßig auch ein Pseudo-Terminal für die Kommunikation mit nicht interaktiven Programmen verwenden kann, sodass das -tArgument für interaktive Programme nicht hinzugefügt werden muss.
RequestTTY yes(oder force).
topkann im Batch - Modus ausgeführt werden .