В ssh_config
, можно выбрать экспорт некоторых переменных среды на хост, используя SendEnv
.
Есть ли способ принудительно задать значение этой переменной для каждого хоста? Например, можно ли экспортировать переменную $FOO
со значением bar
только при подключении к хосту example.com
?
Вы не можете дать конкретную стоимость для переменной среды в ssh_config
, но вы, конечно, можете отправить существующую переменную среды только на определенные хосты.
Host example.com
SendEnv FOO
Чтобы завершить цепочку:
FOO=bar ssh user@example.com
Наконец, удаленный сервер должен иметь переменную среды, указанную в AcceptEnv
в его sshd_config
.
AcceptEnv FOO
Вы можете указать конкретное значение, используя SetEnv
в твоем ~/.ssh/config
, например
Host *
SetEnv FOO=bar
Согласно man ssh_config
:
Непосредственно укажите одну или несколько переменных среды и их содержимое для отправки на сервер. Аналогично
SendEnv
, сервер должен быть готов принять переменную среды.
Предполагая, что ваш сервер получил следующую строку в /etc/ssh/sshd_config
:
AcceptEnv LANG LC_* FOO
Также проверьте: man ssh_config
и man sshd_config
.
Вы можете установить значения конфигурации для каждого хоста, используя файл .ssh / config. Например:
Host example.com
SendEnv FOO
Обратите внимание, что сервер также должен его поддерживать.
Другая идея - установить переменные среды в команде ssh и запустить интерактивную оболочку, например. Я пытаюсь вызвать интерактивную оболочку с env-var 'MANWIDTH':
ssh example.com 'MANWIDTH=120 bash -li'