Um interaktive Eingabeaufforderung in Ihrer SSH-Shell zu haben, müssen Sie PTY auch auf der Serverseite zugewiesen haben. Es wird automatisch ausgeführt, wenn Sie ssh host
aufrufen.
Wenn Sie dieses PTY auf dem Server zuweisen, dann tauscht Ihr lokales Terminal und das entfernte einige zusätzliche Nachrichten aus (Terminalsteuerzeichen), die der Remote-Shell Informationen über die Größe Ihres lokalen Terminals geben von deinem Fenster und so weiter. Das ist etwas, was Sie wirklich nicht wollen, wenn Sie Dateien übertragen oder die Ausgabe "so wie sie ist" weitergeben möchten. Es würde das ändern, und Sie würden allgemein etwas anderes bekommen. Auch dies geschieht automatisch, wenn Sie scp
oder einfach nicht interaktives Skript als ssh host my_script
verwenden.
So weit gut. Sie brauchen die Schalter nicht. Aber die Dinge sind vielleicht nicht immer so einfach.
Sie mögen vielleicht einige interaktiv Shell als Befehl aufzurufen, zum Beispiel ssh host /bin/zsh
. Das würde funktionieren, aber es wird nicht interaktiv sein. In diesem Fall müssen Sie den Schalter -t
verwenden, damit er ordnungsgemäß funktioniert: ssh -t host /bin/zsh
.
Die gleiche Sache kann anders herum gehen. Möglicherweise haben Sie einen Server eingerichtet, der Ihnen unabhängig vom Befehl, den Sie anfordern, eine Ausgabe liefert. In diesem Fall wollen Sie es wirklich nicht mit irgendwelchen Terminalsteuerzeichen durcheinander bringen und dann könnten Sie ssh -T host
verwenden, um diese Kupplung zu vermeiden.
Sie können die -T
auch als Weg zur sicheren Ressourcen auf dem Server und als eine „zweite Verteidigungslinie“ betrachten. Sie können die TTY Zuordnung in der Server-Konfiguration deaktivieren, aber was, wenn ...
Der häufigste Anwendungsfall für den -T
Schalter
ssh -T [email protected]
, um zu überprüfen, dass Sie richtig Ihren SSH-Schlüssel festgelegt haben bis zu authentifizieren Sie sich bei GitHub.