¿Puedo cambiar el tipo de terminal utilizado para iniciar sesión a través de SSH?

8

Cuando inicio sesión en algún servidor en particular a través de SSH (al que no tengo acceso de administrador), aparece el siguiente error: urxvt-unicode: Unknown terminal type(tampoco quiero cambiar mi tipo de terminal de forma permanente). Es importante porque, dependiendo del tipo de terminal, obtengo diferentes colores al iniciar sesión.

¿Es posible cambiar el tipo de terminal solo al iniciar sesión a través de SSH?

sintagma
fuente

Respuestas:

7

Si tiene acceso de root a la caja remota, instale el paquete ncurses-term. Esto proporcionará la rxvt-256colorentrada terminfo.

Como usuario no root, también puede copiar sobre las entradas de rxvt terminfo $HOME/.terminfo/r/en la máquina remota y exportar TERMINFO=$HOME/.terminfo.

ssh <host> 'mkdir -p .terminfo/r'
scp /usr/share/terminfo/r/rxvt-unicode-256color <host>:~/.terminfo/r/
Marco
fuente
No tengo nada adentro /usr/share/terminfo/.
Ondra Žižka
4

después de iniciar sesión puede ejecutar algo como:

export TERM=vt100
Romeo Ninov
fuente
2

El proceso sshd (de sshd (8)) leerá ...

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

y

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.

es posible que desee editar ~/.ssh/rcpara configurar el valor de TERM, ya que este archivo se lee antes del perfil del shell.

Archemar
fuente
1

Generalmente TERMse pasa de su entorno local, sin cambios, al entorno remoto. Si establece TERMen el lado local al invocar ssh, eso hará lo que se necesita.

Por ejemplo, si el extremo remoto tiene la descripción del terminal para rxvt(pero no rxvt-unicode), eso funcionaría lo suficientemente bien para las teclas de función, etc.

Suponiendo que bash o algún shell que sea compatible con POSIX, puede hacerlo

TERM=rxvt ssh servidor remoto

Hacerlo de esa manera solo afecta al sshcomando, no a su entorno local. Utilizo esta función para manejar máquinas típicas para las que no tenemos la descripción screen.xterm-new. Dependiendo de la máquina remota, puede que haya o no un paquete adecuado que se pueda instalar para la base de datos de terminal completa . Algunos (como Solaris y FreeBSD) requieren la solución.

Otras lecturas:

Thomas Dickey
fuente