5 votes

Changer le titre d'une connexion ssh sans modifier les machines distantes

Est-il possible de définir le titre d'une connexion ssh en modifiant simplement quelque chose sur mon ordinateur local ?

Je veux dire que je veux que ubuntu@ip-10-50-10-152 sur l'image ci-dessous soit changé en un nom que j'aime.

Et je ne veux pas modifier les paramètres sur l'ordinateur distant.

entrer la description de l'image ici

L'adresse IP est difficile à retenir, comment puis-je la changer pour un nom plus lisible ?

Je veux associer chaque adresse IP à un nom différent.

Les machines distantes dans mon cas sont de nombreuses instances Amazon EC2. Certaines d'entre elles n'existent que pendant quelques jours. Et de nouvelles ec2 sont créées fréquemment.

J'utilise iTerm2 comme mon terminal macOS. Et je n'ai trouvé aucun plugin qui puisse faire ce que je veux.

Ou existe-t-il un meilleur outil de gestion ssh qui peut afficher du texte personnalisé sur le titre d'une connexion ssh ?

4voto

Douglas Points 10417

Le meilleur moyen (selon moi) est de définir les variables nécessaires dans votre bash_profile de votre machine distante. Je comprends que vous ne voulez rien modifier sur votre machine distante, mais il est important de noter que ce que vous faites est de définir la variable d'environnement PROMPT_COMMAND

Lorsque vous êtes connecté à votre machine distante, exécutez la commande echo $HOSTNAME et echo $PROMPT_COMMAND. Très probablement, vous obtiendrez le nom de votre machine pour le premier et le second sera vide, ce qui signifie qu'il n'est pas défini.

Définir le titre

Modifiez votre .bash_profile trouvé dans votre répertoire personnel sur la machine distante. Il s'agit de votre fichier et n'affectera pas le reste du système. Ajoutez la ligne suivante :

PROMPT_COMMAND='echo -ne "\033]0;${HOSTNAME}\007"'

Le \033]0; (Esc 0;) est le code d'échappement pour définir le titre. Le ${HOSTNAME} est le nom de votre machine.

Sauvegardez votre profil, déconnectez-vous puis reconnectez-vous et votre barre de titre devrait désormais refléter votre nom d'hôte.

Connexion via le nom d'hôte vs l'adresse IP

Il y a deux façons de le faire :

  • Définir le nom d'hôte dans le DNS
  • Modifier votre fichier local /etc/hosts

Je préfère le faire dans le DNS pour que le nom soit disponible pour tous les ordinateurs de votre réseau. En partant du principe que vous avez un routeur "grand public" (comme Linksys ou Netgear), il vous suffit d'ajouter le nom d'hôte à votre bail DHCP statique (consultez la documentation de votre routeur pour plus de détails)

Si vous êtes sur un réseau d'entreprise, l'administrateur réseau peut ajouter un enregistrement au serveur DNS pointant vers votre hôte.

Si ces deux options ne sont pas disponibles, vous pouvez simplement modifier votre fichier local /etc/hosts (nécessite des permissions root. Voici mon /etc/hosts utilisé à titre d'exemple :

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
192.168.10.22   fatjoe

J'ai ajouté le nom d'hôte fatjoe à la fin du fichier hosts. Lorsque je sauvegarde et quitte, si je tape ping fatjoe, il commence immédiatement à pinguer la bonne adresse IP - le changement est immédiat.

0 votes

J'ai trouvé que l'édition de /etc/hostname sur la machine distante fonctionne pour moi. La machine distante est Ubuntu 14.04. Il est étrange que l'édition de /etc/hosts ne fonctionne pas dans mon cas.

0 votes

Je souhaite toujours qu'il existe une méthode qui ne nécessite aucune modification sur la machine distante. Le client ssh Windows, comme Xshell, est capable de le faire. Je viens de migrer de Windows à Mac.

0 votes

Lorsque vous êtes sur la machine distante, que vous donne la commande hostname (avant d'éditer le fichier /etc/hostname)? En ce qui concerne le fait que ce soit spécifique à Windows/Mac, il semble que Xshell ait "bricolé" cela ensemble. Au cours de toutes mes années de travail avec BSD/Solaris/Windows/Mac, j'ai toujours configuré ces informations à distance - donc c'était le même partout.

1voto

grg Points 181593

Ajoutez ce qui suit à votre ~/.ssh/config:

Host votrenom
    HostName serveur.example.com
    Port 22
    User root

Ensuite, utilisez ssh votrenom et 'votrenom' apparaîtra dans la barre de titre.

2 votes

Non, cette méthode ne fonctionne pas sur ma machine.

0 votes

'youname' n'apparaît que dans la barre de titre lors de l'établissement de la connexion ssh.

0 votes

Une fois la connexion établie, elle revient à ubuntu@ip-XX-XX-XX-XX

1voto

J'ai suivi toutes les réponses de ce post et le guide officiel, mais sans succès.

En creusant plus loin, j'ai découvert que le fichier ~/.bashrc sur la machine cible écrasait $PS1, rétablissant ainsi le nom par défaut.

Si vous rencontrez le même problème, il pourrait être utile de rechercher ces lignes dans ~/.bashrc et de les modifier afin d'afficher le titre que vous souhaitez ($NICKNAME dans mon cas) sur l'onglet du terminal.

 case "$TERM" in
 xterm*|rxvt*)
     PS1="\[\e]0;${debian_chroot:+($debian_chroot)}$NICKNAME: \w\a\]$PS1"
     ;;
 *)
     ;;
 esac```

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X