Używanie ssh -t
zamiast ssh
połączeń ze zdalnymi serwerami ma kilka zalet. Na przykład mogę bezpośrednio edytować plik za pomocą vim:, ssh -t host vim foo.txt
inaczej w przeciwnym razie by się nie udało.
Czy są jakieś okoliczności, w których przydzielanie (pseudo) molo byłoby złe podczas korzystania z ssh?
W dodatku do powyższego...
(1) Różne sposoby postępowania z ucieczką tilda:
„~”. Escape rozłączy cię, jeśli masz pty (-t). W przypadku długotrwałego polecenia możesz chcieć zapobiec przypadkowemu zatrzymaniu procesu przez kogoś, kto wpisze ~.
$ ssh nazwa_hosta.tomontime.com -t sleep 60
[type ~. i rozłącza się]
Połączenie z hostname.tomontime.com zostało zamknięte.
$ ssh nazwa hosta -T spać 60
[Wpisuję ~. i traktuje to jak normalne naciśnięcia klawiszy, które ignoruje polecenie uśpienia.]
~.
~.
Spróbuj tego samego z CTRL-C. Zobaczysz, że z -t wysyłasz CTRL-C do „uśpienia”. Z -T wysyłasz CTRL-C do programu ssh uruchomionego na twoim komputerze. Może się zdarzyć, że to robi różnicę (tj. Program obsługuje INT inaczej niż HUP)
(2) Chcesz po prostu zminimalizować aktywność pty lub połączenia sieciowego.
Podczas próby ponownego uruchomienia komputera, który nie ma ptys, nie chcesz zachęcać systemu do próby przydzielenia pty! To również minimalizuje połączenia sieciowe, które będą musiały zostać zamknięte (opóźniając ponowne uruchomienie).
Będzie to działać szybciej i bardziej niezawodnie:
ponowne uruchomienie nazwy hosta ssh -T
Może to powodować problemy:
ponowne uruchomienie hosta ssh -t
źródło
ssh -t tworzy pseudo terminal na zdalnym komputerze. Jest to przydatne, jeśli łączysz polecenia ssh z wieloma serwerami i chcesz mieć prawdziwy terminal po drugiej stronie (abyś mógł na przykład użyć „vi”).
Możesz NIE chcieć „-t”, gdy skrypty logowania zachowują się inaczej, jeśli istnieje terminal. Jest to zła praktyka IMHO, ale widziałem przypadki, w których skrypt logowania sprawdza TTY przed 1) ustawieniem monitu i 2) rozszerzeniem ścieżki do wielu interaktywnych aplikacji.
W innym przypadku (wspomnianym powyżej przez TomOnTime) faktycznie natknąłem się na przypadki, w których wszystkie TTY (ptys) są zużyte. Oczywiście błędna konfiguracja, ale nie trzeba żuć zasobu dla kilku tuneli i rsyncs.
źródło