Puis-je changer le type de terminal utilisé pour se connecter via SSH?

8

Lorsque je me connecte sur un serveur particulier via SSH (auquel je n'ai pas accès administrateur), j'obtiens l'erreur suivante: urxvt-unicode: Unknown terminal type(Je ne veux pas non plus changer mon type de terminal de façon permanente). C'est important car en fonction du type de terminal, j'obtiens différentes couleurs lorsque je suis connecté.

Est-il possible de changer le type de terminal lors de la connexion via SSH?

syntagme
la source

Réponses:

7

Si vous avez un accès root à la boîte distante, installez le package ncurses-term. Cela fournira l' rxvt-256colorentrée terminfo.

En tant qu'utilisateur non root, vous pouvez également copier les entrées terminfo rxvt vers $HOME/.terminfo/r/sur la machine distante et exporter TERMINFO=$HOME/.terminfo.

ssh <host> 'mkdir -p .terminfo/r'
scp /usr/share/terminfo/r/rxvt-unicode-256color <host>:~/.terminfo/r/
Marco
la source
Je n'ai rien dedans /usr/share/terminfo/.
Ondra Žižka
4

après la connexion, vous pouvez exécuter quelque chose comme:

export TERM=vt100
Roméo Ninov
la source
2

processus sshd (de sshd (8)) va lire ...

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

et

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.

vous souhaiterez peut-être modifier ~/.ssh/rcpour configurer la valeur de TERM, car ce fichier est lu avant le profil du shell.

Archemar
la source
1

TERMEst généralement transmis de votre environnement local, inchangé, à l'environnement distant. Si vous définissez TERMle côté local lors de l'appel ssh, cela fera ce qui est nécessaire.

Par exemple, si l'extrémité distante a la description du terminal pour rxvt(mais pas rxvt-unicode), cela fonctionnerait assez bien pour les touches de fonction, etc.

En supposant que bash ou un shell compatible avec POSIX, vous pouvez le faire en

TERM=rxvt ssh remotehost

Le faire de cette façon n'affecte que la sshcommande, pas votre environnement local. J'utilise cette fonctionnalité pour gérer des machines typiques qui n'ont pas la description de screen.xterm-new. Selon la machine distante, il peut y avoir ou non un package approprié qui peut être installé pour la base de données complète du terminal . Certains (tels que Solaris et FreeBSD) nécessitent la solution de contournement.

Lectures complémentaires:

Thomas Dickey
la source