Introduction
Se connecter à un VPS par SSH avec une paire de clés (clé publique / clé privée) est plus sûr que d’utiliser un mot de passe. La clé privée reste sur votre poste ; le serveur ne vous acceptera que si votre client présente la clé correspondante. Ce guide explique, en étapes claires et numérotées, comment générer une paire de clés, installer la clé publique sur le VPS (depuis votre terminal, via le panneau fournisseur ou via cPanel) et établir la connexion depuis Linux, macOS ou Windows.
Prérequis
- Adresse IP publique ou nom d’hôte du VPS et le nom d’utilisateur à utiliser (ex.
root,ubuntu,centosou l’utilisateur créé par votre image). - Port SSH (par défaut 22). Si votre VPS utilise un port personnalisé, notez-le.
- Accès à un client SSH sur votre poste : Terminal sur macOS/Linux, PowerShell/Windows Terminal (OpenSSH intégré) sur Windows 10+, ou PuTTY si vous préférez une interface graphique.
- Si vous ne pouvez plus vous connecter par mot de passe : accès à la console série/console web du fournisseur (ou à l’espace client) pour injecter la clé publique.
- Ne partagez jamais la clé privée. Prévoyez une sauvegarde chiffrée de la clé privée.
Résumé rapide
- Générer une paire clés publique/privée sur votre poste (Ed25519 recommandé).
- Copier ou importer la clé publique sur le VPS (commande
ssh-copy-id, copie manuelle, console du fournisseur ou via cPanel). - Vous connecter en SSH en précisant la clé privée si elle n’est pas dans l’emplacement par défaut.
Étape 1 — Générer une paire de clés
Choisissez ed25519 si possible : clé plus compacte et moderne. Si vous devez assurer une compatibilité maximale, utilisez rsa 4096.
Linux / macOS (Terminal)
# paire Ed25519 (recommandée)
ssh-keygen -t ed25519 -C "votre-email@example.com"
# ou, si vous avez besoin de compatibilité maximale
ssh-keygen -t rsa -b 4096 -C "votre-email@example.com"
Acceptez le chemin par défaut (ex. ~/.ssh/id_ed25519) ou renseignez un autre fichier si vous gérez plusieurs clés. Indiquez une passphrase lorsque demandé (fortement recommandé).
Windows
Deux options :
- PowerShell / Windows Terminal (Windows 10+ avec OpenSSH) : exécutez la même commande
ssh-keygenque ci‑dessus. - PuTTY / PuTTYgen : ouvrez PuTTYgen, choisissez Ed25519 (ou RSA 4096), Generate, sauvegardez la clé privée au format PuTTY (.ppk) et copiez la clé publique affichée. Si vous générez la clé ailleurs en OpenSSH et souhaitez l’utiliser avec PuTTY, importez la clé privée dans PuTTYgen puis enregistrez-la au format .ppk.
Vérifier et protéger la clé privée
# droits conseillés sur Linux/macOS
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519 # ou id_rsa
chmod 600 ~/.ssh/authorized_keys
Ne partagez jamais le fichier privé (id_ed25519, id_rsa, ou le .ppk PuTTY). Sauvegardez-le chiffré si nécessaire.
Utiliser ssh-agent pour ne pas ressaisir la passphrase
Pour garder la clé en mémoire pendant une session :
# Linux / macOS
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# Windows PowerShell (si OpenSSH est installé)
Start-Service ssh-agent
ssh-add C:\Users\VotreNom\ .ssh\id_ed25519
Sur macOS, suivez la documentation Apple si vous souhaitez intégrer la clé au trousseau système.
Étape 2 — Installer la clé publique sur le VPS
Plusieurs méthodes : choisissez celle qui correspond à votre situation.
Méthode A — Automatique (si connexion par mot de passe encore possible)
# remplacez user@IP par votre utilisateur et l'IP du VPS
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@IP
Cette commande crée ~/.ssh côté serveur (si nécessaire), ajoute la clé dans authorized_keys et règle les permissions.
Méthode B — Copie manuelle depuis votre poste
cat ~/.ssh/id_ed25519.pub | ssh user@IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Cette seule ligne copie la clé publique et met les permissions correctes côté serveur.
Méthode C — Via la console web ou le panneau du fournisseur
- Ouvrez le panneau client de votre fournisseur et repérez « Console », « SSH Keys », « Access » ou similaire.
- Collez le contenu de
~/.ssh/id_ed25519.pubdans le champ prévu et enregistrez.
Si votre fournisseur propose l’injection de clé lors de la création de l’instance, ajoutez la clé publique pendant la commande pour l’avoir configurée dès le démarrage.
Méthode D — Depuis un compte cPanel (hébergement mutualisé ou cPanel sur le VPS)
cPanel propose l’outil standard SSH Access / Manage SSH Keys pour importer et autoriser une clé publique :
- Importez la clé (collez le contenu de
id_xxx.pub) puis Authorize si l’interface le demande. - Vous pouvez ensuite ouvrir l’outil Terminal dans cPanel pour vérifier que
~/.ssh/authorized_keyscontient bien la clé autorisée.
~/.ssh/authorized_keys après import.Remarque : l’interface «Manage SSH Keys» peut être désactivée par l’hébergeur. Si vous ne la voyez pas, contactez l’assistance avec l’IP de l’instance, le nom d’utilisateur ciblé et la clé publique à ajouter.
Étape 3 — Se connecter depuis votre machine
Linux / macOS / PowerShell (Windows avec OpenSSH)
# connexion simple (clé par défaut)
ssh user@IP
# spécifier explicitement une clé
ssh -i ~/.ssh/id_ed25519 user@IP
# port SSH personnalisé
ssh -i ~/.ssh/id_ed25519 -p 2222 user@IP
# mode débogage (utile en cas d'erreur)
ssh -vvv -i ~/.ssh/id_ed25519 user@IP
Utiliser un fichier de configuration SSH (~/.ssh/config)
Host mon-vps
HostName 203.0.113.10
User root
IdentityFile ~/.ssh/id_ed25519
Port 22
IdentitiesOnly yes
Puis : ssh mon-vps rend l’accès plus simple et reproductible.
PuTTY (Windows)
- Si vous avez une clé OpenSSH, ouvrez PuTTYgen puis Load pour importer votre clé privée. Si nécessaire, sauvegardez-la au format
.ppk. - Ouvrez PuTTY : dans Session renseignez l’hôte (IP). Dans Connection → SSH → Auth, indiquez le fichier
.ppkavec Private key file for authentication. Retournez à Session et cliquez sur Open.
Dépannage — erreurs fréquentes et solutions
- Permission denied (publickey)
- Vérifiez le nom d’utilisateur exact (quelques images cloud créent
ubuntu,centos,ec2-user, etc.). - Assurez-vous que la clé publique est exactement présente dans
~/.ssh/authorized_keys(aucune coupure de ligne). - Vérifiez les permissions côté serveur :
chmod 700 ~/.sshetchmod 600 ~/.ssh/authorized_keys. - Lancer la commande de diagnostic :
ssh -vvv -i ~/.ssh/id_ed25519 user@IPpour obtenir les échanges et repérer où l’authentification échoue.
- Vérifiez le nom d’utilisateur exact (quelques images cloud créent
- Connection timed out
- Le port SSH est probablement bloqué par un pare‑feu (iptables/ufw) ou par une règle réseau chez le fournisseur. Test rapide :
nc -vz IP 22outelnet IP 22depuis un autre poste pour vérifier la connectivité. - Vérifiez les règles réseau dans le panneau client (Security groups, firewall du VPS).
- Le port SSH est probablement bloqué par un pare‑feu (iptables/ufw) ou par une règle réseau chez le fournisseur. Test rapide :
- Host key verification failed
- Si l’empreinte du serveur a changé (réinstallation, migration), supprimez l’ancienne entrée connue :
ssh-keygen -R IPou éditez~/.ssh/known_hostsmanuellement, puis reconnectez.
- Si l’empreinte du serveur a changé (réinstallation, migration), supprimez l’ancienne entrée connue :
- La clé n’est pas acceptée par PuTTY
- Assurez‑vous d’avoir converti la clé au format
.ppkvia PuTTYgen.
- Assurez‑vous d’avoir converti la clé au format
- Vous ne pouvez pas ajouter la clé publique
- Utilisez la console série/web fournie par l’hébergeur pour ajouter la clé manuellement si l’accès SSH par mot de passe est fermé.
- Si vous ne disposez d’aucun accès, ouvrez un ticket auprès de l’assistance en joignant la clé publique et en précisant l’IP et l’utilisateur ciblés (voir la section «Quand contacter l’assistance»).
- Logs serveur
- Si vous avez un accès root : consultez les logs pour les diagnostics — ex. Debian/Ubuntu :
tail -n 200 /var/log/auth.log, RHEL/CentOS :tail /var/log/secureoujournalctl -u sshd.
- Si vous avez un accès root : consultez les logs pour les diagnostics — ex. Debian/Ubuntu :
Bonnes pratiques de sécurité
- Protégez la clé privée avec une passphrase et utilisez
ssh-agentpour ne pas la retaper à chaque connexion. - Supprimez régulièrement les clés publiques obsolètes du fichier
authorized_keyssur vos serveurs. - Ne désactivez l’authentification par mot de passe (
/etc/ssh/sshd_config → PasswordAuthentication no) qu’après avoir confirmé que toutes les connexions légitimes fonctionnent par clé et que vous gardez un moyen d’accès de secours (console fournisseur). - Limitez l’accès SSH (pare‑feu) aux plages IP nécessaires lorsque possible.
- Évitez de stocker la clé privée sur des lieux non chiffrés ou partagés (stockage cloud non chiffré, espaces publics, etc.).
Quand contacter l’assistance
Ouvrez un ticket si :
- Vous n’avez pas accès à la console web/console série et vous ne pouvez pas ajouter la clé publique.
- Vous n’arrivez pas à démarrer le service SSH après une modification de configuration et vous n’avez pas d’autre moyen d’accès.
- Vous souhaitez que le fournisseur ajoute la clé publique pour vous (joignez uniquement la clé publique : contenu du fichier
id_xxx.pub). Ne joignez jamais la clé privée.
Dans le ticket : précisez l’IP de l’instance, le nom d’utilisateur cible et collez la clé publique complète. N’envoyez jamais la clé privée.
Ressources internes
- Comment commander un serveur VPS SSD ? — vérifiez les options d’accès et la disponibilité de la console/option d’injection de clé à la création.
- Comment accéder à mon compte cPanel ? — si vous utilisez cPanel pour importer/autoriser une clé SSH.
Conclusion
La connexion SSH par clé est une étape simple à mettre en place et améliore nettement la sécurité de votre VPS. En pratique : générez une paire (Ed25519 recommandé), installez la clé publique sur le VPS (commande, console fournisseur ou cPanel), testez la connexion, puis adoptez les bonnes pratiques (passphrase, ssh-agent, suppression des clés obsolètes). Contactez l’assistance si vous ne disposez d’aucun accès de secours pour injecter la clé.
Documentation consultée le 17 octobre 2026. Les outils peuvent varier selon votre hébergement.