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?

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/

Eu não tenho nada em /usr/share/terminfo/.
Ondra Žižka


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.


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:

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.