Utiliser des clés SSH pour l'authentification
Shared FAQ page chrome (breadcrumb, dates, read time, «Continuer la lecture», enquiry block, category labels): see INDEX-AND-CHROME.md. Translate once.
Body
Pourquoi des clés ?
L'authentification par clé publique repose sur un jeu de clés propre à chaque utilisateur, appelé paire clé publique / clé privée. La clé publique générée sur la machine cliente SSH est copiée dans le fichier authorized_keys du serveur SSH, qui considère alors cette clé comme de confiance. À la connexion, le serveur envoie un défi que seul le détenteur de la clé privée correspondante peut signer ; le mot de passe n'est jamais transmis.
Mettre en place l'authentification SSH par clé
Créez le répertoire des clés.
mkdir -p ~/.ssh
Restreignez l'accès au répertoire .ssh au seul utilisateur SSH.
chmod 700 ~/.ssh
Générez la paire de clés.
ssh-keygen -t rsa
Suivez les messages à l'écran pour créer les clés de façon interactive ; saisissez un mot de passe (facultatif) pour protéger la clé privée. Il vous sera demandé à chaque session SSH si vous en avez défini un.
Copiez la clé publique dans le fichier authorized_keys du serveur.
Vous pouvez copier le texte du fichier ~/.ssh/id_rsa.pub et le coller dans le fichier ~/.ssh/authorized_keys du serveur, ou utiliser l'utilitaire ssh-copy-id avec la forme ci-dessous pour transférer la clé.
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
L'option -i indique le fichier d'identité, c'est-à-dire la clé publique.
Désactivez l'authentification par mot de passe et activez l'authentification par clé publique.
Connectez-vous au serveur en root, ouvrez le fichier /etc/ssh/sshd_config avec un éditeur de texte et vérifiez que les directives sont réglées comme ci-dessous.
PubkeyAuthentication yes
PasswordAuthentication no
Si la clé est celle de l'utilisateur root, réglez PermitRootLogin prohibit-password pour que root puisse se connecter avec une clé mais jamais avec un mot de passe. Pour de nouvelles clés, préférez ssh-keygen -t ed25519.
PermitRootLogin prohibit-password
Redémarrez le service SSH sur le serveur et testez la connexion depuis le client ; utilisez l'option -vv de la commande SSH si vous rencontrez un problème de connexion.
ssh -vv root@yourhost.com
Conseils
Le répertoire et les fichiers doivent appartenir à cet utilisateur, avec les bonnes permissions : chmod 600 ~/.ssh/id_rsa
Extrait de la FAQ EuroVPS.
Plus dans la catégorie « Guides »Votre prochain partenaire d'infrastructure
Encore
une question ?
Dites-nous ce que vous cherchez à faire. Un ingénieur lira votre message et vous répondra.
+357 222 32280
Commençons par votre environnement.
Un peu de contexte nous aide à démarrer la bonne conversation.
