Назад | Перейти на главную страницу

Можно ли изменить значение $ TERM при вызове ssh?

На моем локальном терминале TERM = konsole-256color, но не все удаленные машины, которые я подключаю, имеют это определение.

Можно ли заставить ssh изменить СРОК на удаленной машине? Без изменения сценариев .bash * на удаленном компьютере, просто изменив конфигурацию на моем локальном рабочем столе?

Я добавил в свой файл .bashrc следующий псевдоним. Он использует ответ OG, но обертывает его псевдонимом. Работает как шарм;)

# Force xterm-color on ssh sessions
alias ssh='TERM=xterm-color ssh'

человек ssh:

     ssh reads ~/.ssh/environment, and adds lines of the format
     “VARNAME=value” to the environment if the file exists and users are
     allowed to change their environment.  For more information, see the
     PermitUserEnvironment option in sshd_config(5).

Редактировать:

Крысы, я надеялся, что это может быть местная сторона, тем не менее, если есть желание, есть способ. человек ssh_conf:

SendEnv
             Specifies what variables from the local environ(7) should be sent
             to the server.  Note that environment passing is only supported
             for protocol 2.  The server must also support it, and the server
             must be configured to accept these environment variables.  Refer
             to AcceptEnv in sshd_config(5) for how to configure the server.
             Variables are specified by name, which may contain wildcard char-
             acters.  Multiple environment variables may be separated by
             whitespace or spread across multiple SendEnv directives.  The
             default is not to send any environment variables.

В зависимости от конфигурации sshd на принимающей стороне это может или не может соответствовать требованию «запретить удаленную модификацию файла».

TERM=vt100 ssh some.host.name

На удаленном компьютере выполните echo $ TERM.

Вот мое быстрое и грязное решение, которое я только что собрал. Я бы предпочел что-нибудь получше. Думаю, я мог бы использовать вместо этого сценарий оболочки. Регулировка TERM Ценности оставлен в качестве упражнения для читателя.

# To move into a separate plugin...
function ssh {
   if [[ "${TERM}" = screen* || konsole* ]]; then
     env TERM=screen ssh "$@"
   else
     ssh "$@"
   fi
}

В идеале, он должен делать что-то вроде проверки TERM на другой стороне, используя ControlPersist вещи, чтобы предотвратить длительные задержки для нескольких подключений.