Posso alterar o tipo de terminal usado para efetuar login através do SSH?

8

Ao efetuar login em um servidor específico por meio do SSH (ao qual não tenho acesso de administrador), recebo o seguinte erro: urxvt-unicode: Unknown terminal type(Também não quero alterar meu tipo de terminal permanentemente). É importante porque, dependendo do tipo de terminal, recebo cores diferentes quando conectado.

É possível alterar o tipo de terminal apenas ao efetuar logon no SSH?

sintagma
fonte

Respostas:

7

Se você tiver acesso root à caixa remota, instale o pacote ncurses-term. Isso fornecerá a rxvt-256colorentrada terminfo.

Como usuário não root, você também pode copiar as entradas rxvt terminfo para $HOME/.terminfo/r/a máquina remota e exportar TERMINFO=$HOME/.terminfo.

ssh <host> 'mkdir -p .terminfo/r'
scp /usr/share/terminfo/r/rxvt-unicode-256color <host>:~/.terminfo/r/
Marco
fonte
Eu não tenho nada em /usr/share/terminfo/.
Ondra Žižka
4

após o login, você pode executar algo como:

export TERM=vt100
Romeo Ninov
fonte
2

O processo sshd (do sshd (8)) lerá ...

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).

e

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.

você pode querer editar ~/.ssh/rcpara configurar o valor do TERM, pois esse arquivo é lido antes do perfil do shell.

Archemar
fonte
1

Geralmente TERMé passado do ambiente local, inalterado, para o ambiente remoto. Se você definir TERMno lado local ao invocar ssh, isso fará o que for necessário.

Por exemplo, se a extremidade remota tiver a descrição do terminal para rxvt(mas não rxvt-unicode), isso funcionaria bem o suficiente para as teclas de função etc.

Supondo que o bash ou algum shell seja compatível com POSIX, você pode fazer isso

TERM=rxvt ssh hospedeiro remoto

Fazer dessa maneira afeta apenas o sshcomando, não o ambiente local. Eu uso esse recurso para manipular máquinas típicas para as quais não há descrição screen.xterm-new. Dependendo da máquina remota, pode ou não haver um pacote adequado que possa ser instalado para o banco de dados completo do terminal . Alguns (como Solaris e FreeBSD) requerem a solução alternativa.

Leitura adicional:

Thomas Dickey
fonte