На моем локальном терминале 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
вещи, чтобы предотвратить длительные задержки для нескольких подключений.