77 votes

Comment obtenir un terminal coloré via ssh ?

Lorsque je me connecte par ssh à des hôtes distants, tout n'est qu'une seule police/couleur. J'aimerais avoir des couleurs comme je le fais localement, par exemple vert pour l'exécutable et bleu pour les liens symboliques, etc. Et de telle sorte que lorsque je lance $ git diff sur l'hôte ssh, il me montre diff avec des couleurs =)

40voto

pix0r Points 17854

Comme c'était xterm sur le serveur, j'ai pensé que quelque chose n'allait pas avec .bashrc

Et en effet ! ls --color=auto ne fonctionne que lorsque vous êtes connecté à TTY. En changeant tout pour simplement --color en .bashrc sur l'hôte distant et tout est en couleurs maintenant.

35voto

sites Points 611

Cela a marché pour moi :

ssh -t my_host my_command

-t était la clé. Expliqué :

-t      Force pseudo-tty allocation.  This can be used to execute arbitrary screen-based programs on a
        remote machine, which can be very useful, e.g. when implementing menu services.  Multiple -t
        options force tty allocation, even if ssh has no local tty.

26voto

On dirait que les couleurs étaient déjà fixées ~/.bashrc pour moi et le problème est que ssh n'utilise pas le fichier bashrc. Vous pouvez utiliser bashrc dans votre session ssh en ajoutant ce qui suit à ~/.bash_profile :

if [ -f ~/.bashrc ]; then
      . ~/.bashrc
fi

18voto

hinneLinks Points 347

Puisque les couleurs fonctionnent bien lorsqu'on se connecte directement, j'ai simplement décommenté la ligne suivante force_color_prompt=yes dans le fichier ~/.bashrc qui m'a donné des couleurs sur ssh, aussi :

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes

(Ubuntu 18.04 LTS)

8voto

matt Points 666

Quel est le contenu de votre variable env. XTERM sur le serveur lorsque vous vous connectez à celui-ci ?

~ > export | grep -i term
TERM=xterm

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X