Использовать ~ .ssh/config, чтобы всегда установить TERM=cygwin для определенных хостов?

Я использую WinSSHd на нескольких серверах Windows. Для доступа к ним от моего Mac (и по-видимому, примерно любой Основанный на Unix терминал), я должен установить TERM переменная среды к cygwin, например:

TERM=cygwin ssh someserver.com

Я могу также использовать .ssh/config установить определенные значения по умолчанию для того сервера, такие как другой пользователь и порт не по умолчанию:

host someserver.com
    User SomeDifferentDude
    Port 22222

Однако я, по-видимому, не могу установить переменные среды тот путь. Я ничего не нашел в man ssh_config, так или иначе. Существует ли способ установить эмуляцию терминала по умолчанию (и/или какая-либо переменная среды) на хост?

4
задан 15.08.2010, 00:23

2 ответа

Это поворачивается, там намного лучшее решение — WinSSHd поддерживает Unix terminfo формат, таким образом, все я должен был сделать, скопировать надлежащее terminfo файл (в случае OS X: xterm-цвет) в его каталог, и TERM=cygwin установка становится ненужной.

1
ответ дан 07.12.2019, 21:07

Вы обычно устанавливали бы переменную среды на стороне сервера.

Если WinSSHd достаточно похож на openssh (обычная реализация Unix ssh), можно определить файл среды (~/.ssh/environment на Unix) и помещенный TERM=cygwin там.

Можно также установить переменную среды в файле инициализации оболочки. Так как Вы упоминаете cygwin, это, по-видимому, ~/.bash_profile где ~ Ваш cygwin корневой каталог. Необходимо установить его условно, в случае, если Вы также используете cygwin на других терминальных типах; например, для установки его, только если Вы входите в систему по ssh (снова, принимая WinSSHd достаточно похож на openssh):

if [ -n "$SSH_CLIENT" ]; then
  export TERM=cygwin
fi
2
ответ дан 07.12.2019, 21:07

Теги

Похожие вопросы