Une clé SSH permet de se connecter de manière sécurisée à un serveur, une machine virtuelle ou un équipement distant, sans devoir transmettre un mot de passe à chaque connexion.
Elle repose sur deux éléments :
une clé privée, qui reste uniquement sur votre ordinateur ;
une clé publique, qui peut être transmise à l’administrateur du serveur ou ajoutée sur la machine distante.
La clé privée ne doit jamais être envoyée ni partagée.
Objectif de cette procédure
Cette procédure explique comment créer une clé SSH sur Windows, Linux ou macOS, puis récupérer la clé publique à transmettre pour permettre un accès distant sécurisé.
Prérequis
Avant de commencer, vous devez disposer :
d’un ordinateur Windows, Linux ou macOS ;
d’un terminal ;
du client SSH installé.
Sur Linux et macOS, le client SSH est généralement disponible par défaut.
Sur Windows 10 et Windows 11, le client OpenSSH est également généralement installé par défaut.
1. Vérifier si une clé SSH existe déjà
Avant de générer une nouvelle clé, il est recommandé de vérifier si une clé SSH existe déjà sur votre ordinateur.
Sur Windows
Ouvrez PowerShell ou Terminal Windows, puis exécutez :
Get-ChildItem $env:USERPROFILE\.ssh
Si une clé existe déjà, vous pouvez voir des fichiers comme :
id_ed25519 id_ed25519.pub id_rsa id_rsa.pub
Les fichiers avec l’extension .pub sont les clés publiques.
Sur Linux
Ouvrez un terminal, puis exécutez :
ls -la ~/.ssh
Si une clé existe déjà, vous pouvez voir des fichiers comme :
id_ed25519 id_ed25519.pub id_rsa id_rsa.pub
Les fichiers avec l’extension .pub sont les clés publiques.
Sur macOS
Ouvrez l’application Terminal, puis exécutez :
ls -la ~/.ssh
Si une clé existe déjà, vous pouvez voir des fichiers comme :
id_ed25519 id_ed25519.pub id_rsa id_rsa.pub
Les fichiers avec l’extension .pub sont les clés publiques.
2. Générer une nouvelle clé SSH
Si aucune clé SSH n’existe, ou si une nouvelle clé est nécessaire, vous pouvez générer une nouvelle paire de clés.
La commande recommandée est la suivante :
Sur Windows
Dans PowerShell ou Terminal Windows, exécutez :
ssh-keygen -t ed25519 -C "acces-ssh"
Sur Linux
Dans un terminal, exécutez :
ssh-keygen -t ed25519 -C "acces-ssh"
Sur macOS
Dans l’application Terminal, exécutez :
ssh-keygen -t ed25519 -C "acces-ssh"
Le type ed25519 est recommandé pour créer une clé moderne et sécurisée.
3. Choisir l’emplacement de la clé
Après l’exécution de la commande, le système demande où enregistrer la clé.
Sur Windows
Le message ressemble à ceci :
Enter file in which to save the key (C:\Users\VotreNom\.ssh\id_ed25519):
Appuyez simplement sur Entrée pour conserver l’emplacement par défaut.
La clé privée sera enregistrée ici :
C:\Users\VotreNom\.ssh\id_ed25519
La clé publique sera enregistrée ici :
C:\Users\VotreNom\.ssh\id_ed25519.pub
Sur Linux
Le message ressemble à ceci :
Enter file in which to save the key (/home/utilisateur/.ssh/id_ed25519):
Appuyez simplement sur Entrée pour conserver l’emplacement par défaut.
La clé privée sera enregistrée ici :
~/.ssh/id_ed25519
La clé publique sera enregistrée ici :
~/.ssh/id_ed25519.pub
Sur macOS
Le message ressemble à ceci :
Enter file in which to save the key (/Users/utilisateur/.ssh/id_ed25519):
Appuyez simplement sur Entrée pour conserver l’emplacement par défaut.
La clé privée sera enregistrée ici :
~/.ssh/id_ed25519
La clé publique sera enregistrée ici :
~/.ssh/id_ed25519.pub
4. Définir une phrase de passe
Le système demande ensuite une phrase de passe :
Enter passphrase (empty for no passphrase):
Il est recommandé de définir une phrase de passe pour protéger la clé privée.
Vous pouvez également appuyer sur Entrée pour ne pas en définir, si cela est adapté à votre usage.
Le système demandera ensuite de confirmer la phrase de passe :
Enter same passphrase again:
5. Afficher la clé publique
Une fois la clé générée, vous devez afficher la clé publique afin de la copier et de la transmettre.
Sur Windows
Dans PowerShell ou Terminal Windows, exécutez :
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub
Sur Linux
Dans un terminal, exécutez :
cat ~/.ssh/id_ed25519.pub
Sur macOS
Dans l’application Terminal, exécutez :
cat ~/.ssh/id_ed25519.pub
Le résultat ressemble à ceci :
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx acces-ssh
Copiez toute la ligne affichée.
Cette ligne correspond à votre clé publique SSH.
6. Transmettre la clé publique
Vous devez transmettre uniquement le contenu du fichier .pub.
À transmettre
Sur Windows :
C:\Users\VotreNom\.ssh\id_ed25519.pub
Sur Linux et macOS :
~/.ssh/id_ed25519.pub
À ne jamais transmettre
Sur Windows :
C:\Users\VotreNom\.ssh\id_ed25519
Sur Linux et macOS :
~/.ssh/id_ed25519
Le fichier sans extension .pub est votre clé privée.
Il doit rester strictement confidentiel sur votre ordinateur.
7. Tester la connexion SSH
Une fois que la clé publique a été ajoutée sur le serveur distant, vous pouvez tester la connexion.
La commande générale est :
ssh utilisateur@adresse-du-serveur
Exemple :
ssh admin@192.168.1.10
Si vous devez utiliser une clé spécifique, utilisez l’option -i.
Sur Windows
ssh -i $env:USERPROFILE\.ssh\id_ed25519 utilisateur@adresse-du-serveur
Sur Linux
ssh -i ~/.ssh/id_ed25519 utilisateur@adresse-du-serveur
Sur macOS
ssh -i ~/.ssh/id_ed25519 utilisateur@adresse-du-serveur
8. Que faire si la commande SSH n’est pas reconnue ?
Sur Windows
Si la commande suivante ne fonctionne pas :
ssh
et que Windows indique que la commande n’est pas reconnue, le client OpenSSH n’est probablement pas installé.
Pour l’installer :
Ouvrez les Paramètres Windows.
Allez dans Applications.
Ouvrez Fonctionnalités facultatives.
Recherchez Client OpenSSH.
Installez le composant.
Vous pouvez ensuite rouvrir PowerShell et vérifier l’installation avec :
ssh -V
Sur Linux
Si la commande ssh n’est pas disponible, installez le client SSH avec le gestionnaire de paquets de votre distribution.
Sur Debian ou Ubuntu :
sudo apt update sudo apt install openssh-client
Sur Red Hat, Rocky Linux, AlmaLinux ou Fedora :
sudo dnf install openssh-clients
Sur macOS
SSH est généralement disponible par défaut sur macOS.
Vous pouvez vérifier avec :
ssh -V
9. Que faire en cas d’erreur ?
Erreur : Permission denied
Si vous obtenez le message :
Permission denied (publickey)
Vérifiez les points suivants :
la clé publique a bien été ajoutée sur le serveur distant ;
vous utilisez le bon nom d’utilisateur ;
vous vous connectez à la bonne adresse IP ou au bon nom DNS ;
vous utilisez la bonne clé privée.
Mauvaise clé utilisée
Si plusieurs clés SSH existent sur votre ordinateur, indiquez explicitement celle à utiliser :
Windows
ssh -i $env:USERPROFILE\.ssh\id_ed25519 utilisateur@adresse-du-serveur
Linux
ssh -i ~/.ssh/id_ed25519 utilisateur@adresse-du-serveur
macOS
ssh -i ~/.ssh/id_ed25519 utilisateur@adresse-du-serveur
Problème de permissions sur Linux ou macOS
SSH peut refuser d’utiliser une clé si les permissions sont trop ouvertes.
Sur Linux ou macOS, vous pouvez corriger les permissions avec :
chmod 700 ~/.ssh chmod 600 ~/.ssh/id_ed25519 chmod 644 ~/.ssh/id_ed25519.pub
Points importants de sécurité
Ne transmettez jamais votre clé privée.
Transmettez uniquement la clé publique.
Protégez votre clé privée avec une phrase de passe lorsque c’est possible.
Ne copiez pas votre clé privée sur un serveur ou un poste partagé.
Si vous pensez que votre clé privée a été compromise, générez une nouvelle paire de clés.
Supprimez les anciennes clés devenues inutiles côté serveur.
Résumé
Windows
Créer une clé SSH :
ssh-keygen -t ed25519 -C "acces-ssh"
Afficher la clé publique :
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub
Linux
Créer une clé SSH :
ssh-keygen -t ed25519 -C "acces-ssh"
Afficher la clé publique :
cat ~/.ssh/id_ed25519.pub
macOS
Créer une clé SSH :
ssh-keygen -t ed25519 -C "acces-ssh"
Afficher la clé publique :
cat ~/.ssh/id_ed25519.pub
La clé publique peut être transmise à l’administrateur du serveur.
La clé privée doit rester confidentielle sur votre ordinateur.