Utiliser SSH sous Linux : bonnes pratiques
DOG&DEV · 25/01/2025
Utiliser SSH sous Linux : bonnes pratiques
Pour administrer un serveur en SSH de façon sûre, l’authentification par clés et quelques habitudes (clés dédiées, scp/rsync, désactivation du mot de passe) limitent les risques. Ce guide complète ssh-linux (installation du serveur) en se concentrant sur l’utilisation côté client.
Prérequis
- Serveur avec OpenSSH installé et opérationnel (ssh-linux)
- Accès client (Linux, macOS, WSL) avec
ssh,ssh-keygen,scp,rsync
Générer une paire de clés
Sur votre machine (client) :
ssh-keygen -t ed25519 -C "votre@email"
- Fichier : accepter
~/.ssh/id_ed25519ou choisir un chemin (ex.~/.ssh/serveur_prod). - Passphrase : recommandée pour protéger la clé en cas de vol du fichier.
Alternatives : -t rsa -b 4096 si Ed25519 n’est pas supporté.
Installer la clé publique sur le serveur
Méthode 1 : ssh-copy-id
ssh-copy-id -i ~/.ssh/id_ed25519.pub utilisateur@IP_du_serveur
Si le port est différent :
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2222 utilisateur@IP_du_serveur
Méthode 2 : manuelle
Sur le serveur, dans ~/.ssh/ de l’utilisateur cible :
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "contenu_de_la_cle_publique" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Connexion avec une clé (ssh -i)
Si la clé n’est pas celle par défaut (id_ed25519, id_rsa) :
ssh -i ~/.ssh/serveur_prod utilisateur@IP_du_serveur
Avec un port personnalisé :
ssh -i ~/.ssh/serveur_prod -p 2222 utilisateur@IP_du_serveur
Pour éviter de préciser -i à chaque fois, configurez ~/.ssh/config :
Host mon-serveur
HostName 192.0.2.10
User admin
Port 2222
IdentityFile ~/.ssh/serveur_prod
Puis : ssh mon-serveur.
Copie de fichiers : scp et rsync
scp :
# Envoyer un fichier
scp -P 2222 fichier.local utilisateur@IP:/chemin/distant/
# Envoyer un dossier
scp -r -P 2222 dossier/ utilisateur@IP:/chemin/distant/
# Récupérer
scp -P 2222 utilisateur@IP:/chemin/distant/fichier ./
rsync (pratique pour sauvegardes et déploiements) :
rsync -avz -e "ssh -p 2222" dossier/ utilisateur@IP:/chemin/distant/
-a: archive (permissions, dates)-v: verbeux-z: compression
Désactiver l’authentification par mot de passe
Une fois les clés testées et opérationnelles sur le serveur, éditez /etc/ssh/sshd_config :
PasswordAuthentication no
Puis :
sudo sshd -t
sudo systemctl restart ssh
Conservez un accès de secours (console KVM, VNC) au cas où les clés poseraient problème.
Dépannage
| Symptôme | Cause possible | Correctif |
|---|---|---|
| « Permission denied (publickey) » | Clé non installée, mauvais chemin, droits authorized_keys | Vérifier authorized_keys (contenu, chmod 600), ~/.ssh chmod 700 ; ssh -v pour le détail |
| « Host key verification failed » | Clé d’hôte changée (réinstall, changement de serveur) | Supprimer l’ancienne entrée dans ~/.ssh/known_hosts pour cette IP ; vérifier que c’est bien le bon serveur |
| Passphrase à chaque connexion | Agent SSH non utilisé | eval $(ssh-agent) puis ssh-add ~/.ssh/ma_cle |
Bonnes pratiques
- Utiliser une clé par usage (prod, staging, perso) et ne pas réutiliser la même partout.
- Protéger les clés par passphrase et, si possible, un agent (
ssh-add). - Ne jamais partager la clé privée ; seule la publique va sur les serveurs.
- Pour la sécurisation globale du VPS : how-to-secure-vps ; pour l’installation du serveur SSH : ssh-linux.
Ressources
Cet article s’inscrit dans notre série de guides hébergement et gaming. Pour un serveur sur-mesure, contact.