SSH - Lancer un terminal sur votre session sans avoir à vous authentifier
Arrêtez de taper votre mot de passe SSH ! Apprenez à utiliser les clés SSH et `ssh-copy-id` pour lancer instantanément une session terminal Linux sans avoir à vous authentifier chaque fois.
Traduction automatique
Cet article a plus d'un an. Les informations peuvent être obsolètes.
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

Ce guide explique comment mettre en place une connexion SSH sans mot de passe vers vos serveurs Linux. Vous allez apprendre à générer une paire de clés SSH, à utiliser ssh-copy-id pour transférer votre clé publique vers le serveur de façon sécurisée, et à vous connecter sans mot de passe. Le tutoriel aborde aussi scp pour les transferts de fichiers sécurisés et montre comment créer des raccourcis pratiques pour vos connexions grâce à un fichier ~/.ssh/config, ce qui permet de se connecter avec un simple alias.
Imaginez que vous devez régulièrement vous connecter à votre serveur Linux : vous devez lancer un outil comme Putty, saisir votre login, votre mot de passe, etc. et effectuer plusieurs opérations avant d'accéder au terminal.
Si votre mot de passe n'est pas enregistré dans la configuration de Putty, vous devrez lancer un autre outil comme un coffre-fort de mots de passe ; bref, c'est pénible.
Dans cet article, nous allons voir comment s'authentifier une fois pour toutes sur le serveur à l'aide d'une clé SSH.
Deux articles qui prolongent celui-ci : Comment se connecter à votre serveur d'hébergement en SSH, appliqué à un vrai compte d'hébergement, et Maîtrisez votre commande ssh et choisissez l'host dans une liste quand votre ~/.ssh/config contient une dizaine d'alias.
Information
Pour illustrer cet article, partons du principe que christophe est le nom d'utilisateur distant (c'est le nom d'utilisateur sur le serveur, différent de votre nom d'utilisateur local) et que my_blog.be est l'adresse du serveur distant.
Pensez à remplacer ces deux constantes par les vôtres ;-)
TLDR
Créez une clé SSH, copiez-la sur le serveur distant et lancez une connexion SSH. Les étapes 1 et 2 ne se font qu'une seule fois.
Les étapes à lancer dans votre console :
ssh-keygen -t ed25519 -C "christophe@my_blog.be" -f ~/.ssh/id_ed25519_my_blogssh-copy-id -i ~/.ssh/id_ed25519_my_blog christophe@my_blog.bessh -i ~/.ssh/id_ed25519_my_blog christophe@my_blog.be
En détail
1. Créer la clé SSH
La première chose à faire, une seule fois, est de générer une clé SSH sur votre host pour le serveur distant.
En lançant ssh-keygen -t ed25519 -C "christophe@my_blog.be" -f ~/.ssh/id_ed25519_my_blog (ou ssh-keygen -t rsa -C "christophe@my_blog.be" -b 4096 -f ~/.ssh/id_rsa_my_blog pour l'algorithme RSA) :
- Vous allez créer une clé SSH pour l'utilisateur distant
christophesur le serveurmy_blog.be. Vous obtiendrez une clé privée et une clé publique, - La clé sera enregistrée sur votre machine et le nom de fichier sera
~/.ssh/id_ed25519_my_blogpour la clé privée (et~/.ssh/id_ed25519_my_blog.pubpour la publique), - La clé sera basée sur l'algorithme ed25519.
2. Copier la clé
Ceci fait, vous devez copier la clé SSH publique sur votre serveur distant. Pour cela, lancez ssh-copy-id -i ~/.ssh/id_ed25519_my_blog christophe@my_blog.be. Cela ne doit être fait qu'une seule fois.
- Vous allez copier votre clé publique SSH locale
id_ed25519_my_blogsur le serveurmy_blog.be, - La clé sera ajoutée pour l'utilisateur distant
christophe, - Vous devrez fournir le mot de passe de cet utilisateur lorsqu'il sera demandé.
Information
La commande ssh-copy-id ajoutera votre clé publique à la fin du fichier ~/.ssh/authorized_keys sur le serveur.
3. Se connecter au serveur
Maintenant, tout est en place : vous pouvez lancer ssh -i ~/.ssh/id_ed25519_my_blog christophe@my_blog.be et cela devrait fonctionner puisque la clé publique id_ed25519_my_blog a déjà été copiée sur le serveur my_blog.be pour l'utilisateur christophe.
Information
Vous pouvez afficher ou éditer le contenu du fichier ~/.ssh/authorized_keys en lançant cat ~/.ssh/authorized_keys (ou vi ~/.ssh/authorized_keys). Vous pourrez ainsi supprimer d'anciennes clés autorisées, par exemple.
Copier des fichiers de votre host vers le serveur
Maintenant que nous pouvons nous connecter au serveur si facilement, nous pouvons par exemple copier des fichiers depuis notre host comme ceci :
Il faut d'abord indiquer notre fichier (ou dossier) local puis où le copier.
Copier des fichiers du serveur vers votre host
Maintenant, dans l'autre sens, du serveur vers votre host :
Copier des dossiers
Si vous devez copier un dossier, ajoutez simplement le flag récursif, c'est-à-dire -r.
Par exemple, scp -r christophe@my_blog.be:~/backup/ . va copier tout le dossier ~/backup du serveur dans mon dossier local courant. Vraiment pratique.
Astuces
Lancer ssh depuis Microsoft Terminal
L'expérience SSH est bien, bien meilleure avec Microsoft Terminal qu'avec la vieille application Putty.
Avec Microsoft Terminal, vous pouvez travailler en plein écran, avoir une jolie image de fond, utiliser une bien meilleure police (celle de Putty par défaut est affreuse), utiliser des onglets, ...
Si vous avez déjà utilisé Putty, vous voyez ce que je veux dire.
Utiliser le fichier config
Comme nous l'avons vu, avec la commande ssh ou scp, nous devons préciser le nom d'utilisateur, le nom ou l'adresse IP du serveur et le nom du fichier contenant la clé privée. Ça fait beaucoup d'informations à fournir, non ?
En plus, comme moi, je n'arrive pas à retenir toutes ces informations. Je veux juste me connecter à mon serveur d'applications, c'est tout !
Ce serait bien de pouvoir faire ssh my_application et basta. Non ? C'est justement le but du fichier ~/.ssh/config !
Pour me connecter à ce serveur, ma commande ssh ressemble à ceci : ssh christophe@my_blog.be -i ~/.ssh/id_ed25519_my_blog. Pas facile à retenir !
Créons un fichier ~/.ssh/config. Si le fichier existe déjà, éditez-le : code ~/.ssh/config.
Ajoutez ces lignes dans le fichier :
Host my_app Hostname my_blog.be User christophe IdentityFile ~/.ssh/id_ed25519_my_blogCette configuration SSH définit les paramètres de connexion pour un hôte appelé my_app. Elle spécifie le nom d'hôte réel, l'utilisateur à utiliser pour la connexion et le chemin vers la clé privée Ed25519 qui authentifiera la connexion.
Enregistrez le fichier et retournez dans la console.
Maintenant, il suffit de lancer ssh my_app pour établir la connexion. Plutôt simple, non ?
Vous voulez en savoir plus ? Poursuivez votre lecture ici https://linuxize.com/post/using-the-ssh-config-file/
Pour aller plus loin
Une fois que votre fichier ~/.ssh/config commence à se remplir d'alias, deux articles complémentaires valent le coup d'œil : SSH - Autosuggestions avec ZSH, pour ne plus jamais devoir retenir un alias, et Utiliser sftp en ligne de commande si vous avez besoin du pendant sftp de scp.
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…




