2017-02-28 4 views
0

verwenden -T ssh Um zu testen, ich Sie so etwas wie ssh -T [email protected] verwenden lesen müssen:Warum mit ssh

Nach man ssh:

-T  Disable pseudo-terminal allocation. 

-t  Force pseudo-terminal allocation. This can be used to execute arbitrary screen-based programs on a remote 
     machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty alloca- 
     tion, even if ssh has no local tty. 

aber ich bin immer noch nicht klar, auch nach der Lektüre dieses, Was ist der Zweck der Verwendung von -T beim Testen von SSH.

Ich las auf Pseudo-Terminals (https://linux.die.net/man/7/pty), aber das schien nicht zu helfen.

Antwort

2

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.