man 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).
Edit:
Крысы, я надеялся, что это может быть с местной стороны, но все же, если есть желание, есть способ. man 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
оставлена в качестве упражнения для читателя.
# To move into a separate plugin...
function ssh {
if [[ "${TERM}" = screen* || konsole* ]]; then
env TERM=screen ssh "$@"
else
ssh "$@"
fi
}
В идеале, это должно было бы сделать что-то вроде проверки TERM на другой стороне, используя материал ControlPersist
для предотвращения длительных задержек для нескольких подключений.
Я добавил следующий псевдоним в свой файл .bashrc. Он использует ответ OG, но оборачивает его псевдонимом. Работает как шарм;)
# Force xterm-color on ssh sessions
alias ssh='TERM=xterm-color ssh'
04 июня 2021 г. «разрешить ssh_config SetEnv переопределять $TERM» было зафиксировано в openssh-portable , что, похоже, позволит вам установить SetEnv TERM
в ~/.ssh/config
, например, в директиве Host
. (Или это позволит вам, как только выпуск будет сокращен с этим патчем, предположительно.)