Pourquoi utiliser des clés SSH ?
L'authentification par clé SSH est bien plus sécurisée que l'authentification par mot de passe :
- Impossibilité de brute force : une clé RSA de 4096 bits ne peut pas être devinée
- Pas de mot de passe à retenir : votre clé privée authentifie automatiquement
- Résistance au phishing : même si vous êtes trompé sur l'identité du serveur, votre clé ne peut pas être volée
Générer une paire de clés SSH
Sur Linux ou macOS
Ouvrez un terminal et générez une paire de clés RSA :
ssh-keygen -t ed25519 -C "votre@email.fr" -f ~/.ssh/id_gaprod_vps
L'algorithme Ed25519 est plus moderne et plus sécurisé que RSA. Si votre système ne le supporte pas, utilisez RSA 4096 :
ssh-keygen -t rsa -b 4096 -C "votre@email.fr" -f ~/.ssh/id_gaprod_vps
L'assistant vous demande une passphrase (phrase secrète). Définissez-en une pour protéger votre clé privée si elle est volée. Confirmez-la.
Deux fichiers sont créés :
~/.ssh/id_gaprod_vps: votre clé privée (ne la partagez jamais)~/.ssh/id_gaprod_vps.pub: votre clé publique (à copier sur le serveur)
Sur Windows avec PuTTYgen
Télécharger PuTTY
Téléchargez la suite PuTTY depuis putty.org. Elle inclut PuTTY, PuTTYgen et Pageant.
Ouvrir PuTTYgen
Lancez PuTTYgen. Dans le menu Type of key to generate, sélectionnez EdDSA ou RSA avec 4096 bits.
Générer la paire de clés
Cliquez sur Generate et déplacez la souris sur la zone grise pour générer de l'aléatoire. La génération prend quelques secondes.
Définir une passphrase
Dans les champs Key passphrase et Confirm passphrase, saisissez une phrase secrète robuste.
Sauvegarder les clés
- Cliquez sur Save private key pour sauvegarder la clé privée au format
.ppk(format PuTTY) - Copiez le contenu de la zone Public key for pasting into OpenSSH authorized_keys — vous en aurez besoin pour l'installation sur le serveur
- Cliquez sur Save private key pour sauvegarder la clé privée au format
Installer la clé publique sur le VPS
Se connecter au VPS avec le mot de passe actuel
Connectez-vous une dernière fois avec votre mot de passe.
Créer le répertoire SSH et le fichier authorized_keys
mkdir -p ~/.ssh chmod 700 ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keysAjouter votre clé publique
Méthode rapide depuis Linux/macOS :
ssh-copy-id -i ~/.ssh/id_gaprod_vps.pub votrenom@185.xxx.xxx.xxxMéthode manuelle : ouvrez
~/.ssh/authorized_keysavec un éditeur :nano ~/.ssh/authorized_keysCollez le contenu de votre clé publique (la ligne commençant par
ssh-ed25519oussh-rsa). Sauvegardez avec Ctrl+O puis quittez avec Ctrl+X.
Tester la connexion par clé
Ouvrez un nouveau terminal et connectez-vous :
ssh -i ~/.ssh/id_gaprod_vps votrenom@185.xxx.xxx.xxx
Si la connexion s'établit sans demande de mot de passe (ou uniquement avec la passphrase de votre clé), la configuration est correcte.
Désactiver l'authentification par mot de passe
Une fois les clés configurées et testées, désactivez l'authentification par mot de passe pour bloquer les attaques par force brute :
sudo nano /etc/ssh/sshd_config
Modifiez ou ajoutez :
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Redémarrez SSH :
sudo systemctl restart sshd
Vérifiez avant de désactiver les mots de passe
Assurez-vous que votre connexion par clé fonctionne parfaitement dans une autre fenêtre de terminal avant de désactiver les mots de passe. Sinon, vous risquez d'être définitivement bloqué hors de votre VPS.
Configurer un fichier SSH config
Le fichier ~/.ssh/config vous permet de créer des raccourcis pour vos connexions SSH.
nano ~/.ssh/config
Ajoutez une entrée pour votre VPS Gaprod :
Host gaprod-vps
HostName 185.xxx.xxx.xxx
User votrenom
IdentityFile ~/.ssh/id_gaprod_vps
Port 22
Vous pouvez maintenant vous connecter simplement avec :
ssh gaprod-vps
Configurer PuTTY pour la connexion par clé (Windows)
Ouvrir PuTTY
Lancez PuTTY. Dans le champ Host Name, saisissez l'IP de votre VPS. Port :
22.Configurer la clé privée
Dans le panneau gauche, naviguez vers Connection → SSH → Auth → Credentials. Dans le champ Private key file for authentication, cliquez sur Browse et sélectionnez votre fichier
.ppk.Sauvegarder la session
Revenez à Session, saisissez un nom dans Saved Sessions (ex. : "Gaprod VPS") et cliquez sur Save. Vous pourrez ainsi charger cette configuration rapidement à l'avenir.
Se connecter
Double-cliquez sur la session sauvegardée ou cliquez sur Open. La connexion s'établit et vous êtes invité à entrer la passphrase de votre clé.
Changer le port SSH (optionnel)
Changer le port SSH par défaut (22) vers un port non standard réduit considérablement le bruit dans vos logs dû aux scans automatiques :
sudo nano /etc/ssh/sshd_config
Modifiez :
Port 2222
Redémarrez SSH et mettez à jour votre pare-feu pour autoriser le nouveau port avant de fermer le port 22.
Résolution des problèmes courants
Permission denied (publickey) : vérifiez que les permissions de ~/.ssh (700) et ~/.ssh/authorized_keys (600) sont correctes. Assurez-vous d'avoir copié la clé publique complète sur une seule ligne.
Connection refused : vérifiez que le service SSH est en cours d'exécution (systemctl status sshd) et que le port SSH est ouvert dans le pare-feu.
Host key verification failed : l'empreinte du serveur a changé (réinstallation, migration). Supprimez l'ancienne entrée dans ~/.ssh/known_hosts avec ssh-keygen -R 185.xxx.xxx.xxx.
Étapes suivantes
- Configurer le pare-feu UFW pour sécuriser votre VPS
- Installer Nginx pour héberger vos sites web
- Configurer les sauvegardes automatiques de votre VPS