Могу ли я изменить тип терминала, используемого для входа через SSH?

8

Когда я вхожу на какой-то конкретный сервер через SSH (к которому у меня нет доступа администратора), я получаю следующую ошибку: urxvt-unicode: Unknown terminal type(Я также не хочу постоянно менять тип своего терминала). Это важно, потому что в зависимости от типа терминала я получаю разные цвета при входе в систему.

Можно ли изменить тип терминала только при входе через SSH?

синтагма
источник

Ответы:

7

Если у вас есть root-доступ к удаленной коробке, установите пакет ncurses-term. Это обеспечит rxvt-256colorзапись terminfo.

Как пользователь без полномочий root вы также можете скопировать записи rxvt terminfo $HOME/.terminfo/r/на удаленный компьютер и выполнить экспорт TERMINFO=$HOME/.terminfo.

ssh <host> 'mkdir -p .terminfo/r'
scp /usr/share/terminfo/r/rxvt-unicode-256color <host>:~/.terminfo/r/
Marco
источник
У меня нет ничего /usr/share/terminfo/.
Ондра Жижка
4

после входа в систему вы можете выполнить что-то вроде:

export TERM=vt100
Ромео Нинов
источник
2

Процесс sshd (из sshd (8)) будет читать ...

6.   Reads the file ~/.ssh/environment, if it exists, and users are
allowed to change their environment.  See the PermitUserEnvironment 
option in sshd_config(5).

а также

8.   If ~/.ssh/rc exists, runs it; else if /etc/ssh/sshrc exists, 
runs it; otherwise runs xauth.  The “rc” files are given the X11 
authentication protocol and cookie in standard input.  See SSHRC, below.

Вы можете изменить ~/.ssh/rcнастройки TERM, так как этот файл читается перед профилем оболочки.

Archemar
источник
1

Обычно TERMпередается из вашей локальной среды, без изменений, в удаленную среду. Если вы установите TERMна локальной стороне при вызове ssh, это будет делать то, что нужно.

Например, если удаленный конец имеет описание терминала для rxvt(но не rxvt-unicode), это будет достаточно хорошо для функциональных клавиш и т. Д.

Предполагая, что bash или какая-то оболочка совместима с POSIX, вы можете сделать это:

TERM=rxvt ssh удаленный узел

Это влияет только на sshкоманду, а не на вашу локальную среду. Я использую эту функцию для обработки типичных машин, для которых нет описания screen.xterm-new. В зависимости от удаленного компьютера может существовать или не быть подходящий пакет, который можно установить для полной базы данных терминала . Некоторые (такие как Solaris и FreeBSD) требуют обходного пути.

Дальнейшее чтение:

Томас Дики
источник