Обычный способ подключения к серверу SSH - это ssh username@ip_address
. Но пользователь может захотеть запустить программу только на удаленном компьютере. Таким образом, имя программы следует после обычного аргумента, который есть ssh username@ip_address <program_name>
. Например, ssh username@ip_address ls
. Этот аргумент хорош, за исключением интерактивных программ (которые также принимают пользовательский ввод и обеспечивают вывод), например top
. Выход
Переменная окружения TERM не установлена.
это означает, что (псевдо) терминал не подключен между программами sshd и top. Решение состоит в том, чтобы добавить аргумент, -t
которым теперь становится вся команда ssh -t username@ip_address top
.
Мой вопрос: почему sshd по умолчанию не может использовать псевдотерминал для взаимодействия с неинтерактивными программами, поэтому нет необходимости добавлять -t
аргумент для интерактивных программ?
RequestTTY yes
(или force
) в вашей конфигурации.
top
может работать в пакетном режиме.