SSH - Autosuggestions avec ZSH
Obtenez des autosuggestions SSH instantanées dans ZSH. Apprenez à installer le plugin zsh-ssh-config-suggestions et à afficher tous les alias de votre ~/.ssh/config avec un simple appui sur TAB.
Traduction automatique
Cet article fait partie de la série SSH — de votre première clé au développement distant :
- GitHub - Connectez votre compte en SSH et travaillez avec le protocole git@
- Docker secrets : utiliser votre clé SSH pendant le build
- Utiliser sftp en ligne de commande, avec ou sans proxy
- SSH - Autosuggestions avec ZSH
- SSH - Lancer un terminal sur votre session sans avoir à vous authentifier
- Comment se connecter à votre serveur d'hébergement en SSH
- Développement distant en SSH avec VSCode
- Ouvrir un DevContainer sur un serveur distant avec VSCode Remote SSH et ProxyJump
- Générateur de config SSH : stanzas wildcard, alias et connexions automatisées
Journal des modifications

Arrêtez de mémoriser les IP de serveurs et les commandes SSH. Cet article vous montre comment fluidifier votre workflow SSH avec zsh-ssh-config-suggestions, un plugin ZSH qui fournit des autosuggestions pour vos connexions SSH. En s'appuyant sur votre fichier ~/.ssh/config, ce plugin vous permet de simplement taper ssh et d'appuyer sur Tab pour voir la liste de tous les alias de serveurs configurés. Découvrez comment installer et configurer ce plugin bien pratique pour vous connecter à vos serveurs plus vite et plus efficacement.
Il y a quelques semaines, j'ai publié un article SSH - Launch a terminal on your session without having to authenticate yourself à propos de la commande ssh sous Linux.
Je suis presque sûr que, comme moi, vous êtes fatigué de taper des lignes de commande comme ssh christophe@1.2.3.4 pour démarrer une connexion SSH parce que... vous savez, vous n'avez pas besoin de vous connecter sur un serveur ; non, vous avez besoin de vous connecter au serveur où tourne l'application ; vous connaissez le nom de l'application MyAmazingApp mais certainement pas le nom du serveur ni son IP.
C'est mon cas en tout cas.
Du coup, je dois me connecter à mon coffre-fort, dans lequel je liste toutes les informations sur les applications, les noms de serveurs, les identifiants à utiliser, ...
Ce serait plutôt cool de lancer ssh MyAmazingApp non ?
Deux articles voisins : Comment se connecter à votre serveur d'hébergement en SSH pour remplir ce ~/.ssh/config au départ, et Maîtrisez votre commande ssh et choisissez l'host dans une liste quand l'autocomplétion ne suffit plus — passé la cinquantaine d'hosts, une liste filtrable vaut mieux que TAB.
Voici le résultat : tapez ssh (avec l'espace à la fin) et appuyez sur TAB pour obtenir tous les alias de votre fichier ~/.ssh/config, en autosuggestion.

Vous devez ajouter un espace après `ssh`
Pour que ça fonctionne, notez bien ceci : vous devez ajouter un espace après avoir tapé ssh et avant d'appuyer sur tab.
Pourquoi ça fonctionne
Le plugin lit les alias Host déjà déclarés dans votre fichier ~/.ssh/config et les branche sur le système de complétion de ZSH — aucune liste séparée à maintenir, aucun coffre-fort à ouvrir, juste le fichier de configuration que vous avez déjà.
Ce serait vraiment sympa de pouvoir lancer ssh MyAmazingApp et hop, je suis connecté sur le serveur.
C'est là que le ~/.ssh/config est si utile (référez-vous à cet article) mais on peut aller un cran plus loin : ce serait génial de taper ssh et, par magie, que Linux vous montre la liste des alias définis dans le fichier ~/.ssh/config. Installons ça.
Le voir en action avec Docker
Aucun serveur réel n'est jamais contacté par ce plugin — il lit uniquement les alias Host d'un fichier
de configuration — ce qui en fait un test Docker en une commande parfaitement sûr.
Pourquoi Docker d'abord ?
Le Dockerfile ci-dessous installe Oh-My-Zsh et le plugin, l'active dans ~/.zshrc, et écrit le
~/.ssh/config exact montré plus bas. Rien ne change sur votre propre machine, et rien n'essaie
de se connecter réellement où que ce soit.
Buildez-le et lancez-le :
$ docker build -t ssh-suggest-demo . [+] Building 20.7s (8/8) FINISHED ✔ exporting to image
$ docker run --rm -it ssh-suggest-demo 🐳 root ~ # ssh
Tapez ssh (avec l'espace à la fin) et appuyez sur TAB — les mêmes quatre alias de la
section « Utilisez-le » ci-dessous (MyAmazingApp_PROD, MyAmazingApp_TEST, YourAmazingApp,
LegacyApp) apparaissent immédiatement, lus directement depuis le ~/.ssh/config préparé dans l'image.
Installation du plugin zsh-ssh-config-suggestions
On suppose ici qu'Oh-My-Zsh est déjà installé (voir Comment installer Oh-My-ZSH si ce n'est pas le cas). Clonez simplement le repository officiel en lançant cette commande : git clone https://github.com/yngc0der/zsh-ssh-config-suggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-ssh-config-suggestions. Vous obtiendrez une copie locale du plugin dans votre dossier de plugins Oh-my-zsh.
Éditez ensuite le fichier ~/.zshrc, cherchez plugins=( et ajoutez zsh-ssh-config-suggestions à la liste. Vous aurez par exemple quelque chose comme ceci :
plugins=( git # ... your existing plugins zsh-ssh-config-suggestions)Cet extrait configure un tableau de plugins pour Zsh en ajoutant le plugin zsh-ssh-config-suggestions à la liste existante. Le commentaire à la ligne 3 indique où placer tes plugins actuels, et zsh-ssh-config-suggestions sera chargé en même temps qu'eux.
Fermez votre console, ouvrez-en une nouvelle (ou lancez source ~/.zshrc pour charger votre modification) et c'est terminé.
Utilisez-le
Imaginez que j'aie ce contenu dans mon ~/.ssh/config :
Host MyAmazingApp_PROD Hostname 1.2.3.4 User usr_app_prod
Host MyAmazingApp_TEST Hostname 6.7.8.9 User usr_app_test
Host YourAmazingApp Hostname 1.2.3.4 User you
Host LegacyApp Hostname 1.2.3.4 User legacyCe fichier de configuration SSH définit quatre hôtes distants avec leurs paramètres de connexion respectifs. Chaque entrée Host spécifie un alias mémorisable, l'adresse IP réelle de la machine (Hostname) et l'utilisateur à utiliser pour se connecter. Cela permet de se connecter simplement avec ssh MyAmazingApp_PROD au lieu de taper l'adresse IP et l'utilisateur complet.
Maintenant, je n'ai vraiment plus besoin de me souvenir de quoi que ce soit et je n'ai même plus besoin de connaître le nom des alias !
Je dois juste taper (c'est important) : ssh suivi de TAB et j'obtiens les mêmes suggestions que celles déjà montrées en haut de cet article.
Comme vous pouvez le voir, le système affiche la liste des hosts définis dans mon fichier de configuration ! Je peux alors éditer le fichier, ajouter une nouvelle application et hop, la prochaine fois, j'aurai son nom dans la liste. Je n'ai plus besoin de me connecter à mon coffre-fort. Sympa non ?
Ce n'est qu'un plugin parmi beaucoup d'autres ; si votre ~/.zshrc commence à grossir avec ce genre de personnalisations, jetez un œil à Au-delà du monolithe - Organiser son workflow ZSH comme un pro pour le garder maintenable.
Cet article fait partie de la série SSH — de votre première clé au développement distant :
- GitHub - Connectez votre compte en SSH et travaillez avec le protocole git@
- Docker secrets : utiliser votre clé SSH pendant le build
- Utiliser sftp en ligne de commande, avec ou sans proxy
- SSH - Autosuggestions avec ZSH
- SSH - Lancer un terminal sur votre session sans avoir à vous authentifier
- Comment se connecter à votre serveur d'hébergement en SSH
- Développement distant en SSH avec VSCode
- Ouvrir un DevContainer sur un serveur distant avec VSCode Remote SSH et ProxyJump
- Générateur de config SSH : stanzas wildcard, alias et connexions automatisées
Chargement des commentaires…




