Posso alterar o tipo de terminal usado para efetuar login por meio do SSH?

6

Quando eu faço login em algum servidor específico através 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, eu obtenho cores diferentes quando conectado.

É possível alterar o tipo de terminal apenas ao fazer o login através do SSH?

    
por syntagma 28.04.2015 / 09:42

4 respostas

6

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

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

ssh <host> 'mkdir -p .terminfo/r'
scp /usr/share/terminfo/r/rxvt-unicode-256color <host>:~/.terminfo/r/
    
por 28.04.2015 / 09:50
2

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

export TERM=vt100
    
por 28.04.2015 / 09:46
1

sshd process (de sshd (8)) irá 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 desejar editar ~/.ssh/rc para configurar o valor de TERM, pois esse arquivo é lido antes do perfil do shell.

    
por 28.04.2015 / 11:26
1

Normalmente, TERM é passado do seu ambiente local, inalterado, para o ambiente remoto. Se você definir TERM no 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 funcionará bem o suficiente para as teclas de função, etc.

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

TERM=rxvt ssh remotehost

Fazer isso dessa maneira afeta apenas o comando ssh , não o ambiente local. Eu uso esse recurso para lidar com máquinas típicas que não têm a descrição para 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 de terminais completo . Alguns (como o Solaris e o FreeBSD) exigem a solução alternativa.

Leitura adicional:

por 13.06.2016 / 10:58