Vous pouvez utiliser le ssh LocalCommand pour émettre la séquence d'échappement ANSI pour changer la couleur d'arrière-plan et avoir une section par hôte (ou modèle d'hôte) pour sélectionner la couleur appropriée que vous souhaitez faire correspondre à l'hôte distant.
Si vos serveurs de production suivent une convention de dénomination telle que "commence par prod", vous pouvez essayer l'extrait de code suivant dans votre fichier ~ / .ssh / config:
Host prod*
PermitLocalCommand yes
LocalCommand printf "\x1b[41m\x1b[2JPRODUCTION SYSTEM [%n]\n\n"
S'il n'y a pas de convention de dénomination pratique pour utiliser des modèles génériques, vous pouvez simplement répertorier les noms d'hôtes séparés par des espaces. Vous pouvez également créer des blocs hôtes supplémentaires avec différentes valeurs de couleur et chaînes pour divers autres serveurs hors production.
Après la connexion à un hôte qui correspond au motif, le printf correspondant sera exécuté localement, en changeant la couleur d'arrière-plan en rouge (le [41m choisit le rouge comme couleur d'arrière-plan, la partie [2J repeint tout l'écran avec la couleur d'arrière-plan mise à jour. Voir https://en.wikipedia.org/wiki/ANSI_escape_code pour beaucoup plus d'options)
Le plus gros inconvénient de cette approche est que la couleur d'arrière-plan persiste à la sortie de la session ssh; Il n'y a pas d'équivalent à LocalCommand à exécuter sur la déconnexion (à ma connaissance). Un script d'alias ou de shell shell pour ssh pourrait être appelé printf "\x1b[0m"
comme réinitialisation. D'un autre côté, avoir la couleur d'arrière-plan définie via LocalCommand signifie que vous obtiendrez l'ensemble de couleurs même si ssh n'est pas exécuté via un script wrapper ou un alias.
ls
aliaséesls --color=auto
et qu'elles incluent la séquence de réinitialisation '<ESC> [0m'. Pour persister, vous devrez probablement configurer différents profils gnome-terminal et suivre la route du script wrapper, en sélectionnant un nom de profil basé sur le nom d'hôte et en invoquantgnome-terminal --profile=$PROFILE_NAME -e ssh $HOST &
ls --colour
OU la séquence de réinitialisation dans PS1, l'un ou l'autre remplacera les paramètres de couleur ansi précédents. Je vais donc examiner la mise en œuvre de la solution de script wrapper que vous proposez, ce qui est également une excellente idée! Merci beaucoup!