Normalny sposób połączenia z serwerem SSH to ssh username@ip_address
. Ale użytkownik może chcieć uruchomić program tylko na zdalnym komputerze. Więc nazwa programu następuje po normalnym argumencie, którym jest ssh username@ip_address <program_name>
. Na przykład ssh username@ip_address ls
. Ten argument jest w porządku, z wyjątkiem programów interaktywnych (które również akceptują dane wejściowe użytkownika, a także zapewniają dane wyjściowe) np top
. Dane wyjściowe to
Zmienna środowiskowa TERM nie jest ustawiona.
co oznacza, że żaden (pseudo-) terminal nie jest podłączony między programami sshd i top. Rozwiązaniem jest dodanie argumentu w -t
miejscu, w którym teraz staje się całe polecenie ssh -t username@ip_address top
.
Moje pytanie brzmi: dlaczego sshd domyślnie nie może również używać pseudo-terminala do komunikacji z programami nieinteraktywnymi, więc nie ma potrzeby dodawania -t
argumentu dla programów interaktywnych?
RequestTTY yes
(lub force
) w swojej konfiguracji.
top
może działać w trybie wsadowym.