{{tag>sysadmin ssh chiffrement sécurité}} ====== SSH: Gestion des clés d'authentification ====== La commande de gestion des clés SSH ssh-keygen s'appuie sur OpenSSL. Quelques notes à propos de la gestion des clés d'authentification. ===== RSA ou DSA ===== Ces deux algorithmes de chiffrements asymétriques sont utilisables. Historiquement DSA a été développé alors que RSA préexistant n’était pas exploitable pour des raisons de brevet. Quel que soit l'algorithme, ne pas générer de clé de taille inférieure à 2048 bits. ===== Générer un paire de clés ===== ssh-keygen -t rsa -b 4096 -C username@domain.tld -f output_file L'argument -C permet de définir un commentaire, en général désignant l'utilisateur. La commande produit deux fichiers dans le répertoire **~/.ssh/** de l'utilisateur. ===== Modifier la passphrase ===== En cas de compromission de la clé privée, la modification de la passphrase ne sera d'aucune aide. Régénérer et utiliser une nouvelle clé. Pour modifier la passphrase: $ ssh-keygen -p -f ~/.ssh/id_rsa ===== Ajouter ou modifier le commentaire ===== Il est possible d'ajouter un commentaire ou un descriptif à une paire de clés préexistante. Ça peut devenir plus confortable quand on utilise plusieurs clés. # On ajoute le commentaire "My user name" sur la clé pré-existante user_id ssh-keygen -c -C "My user name" -f ~/.ssh/user_id ===== Régénérer la clé publique ===== La clé publique a normalement été copiée sur les machines distantes dans le fichier **~/.ssh/authorized_keys**. On peut regénérer la clé publique grâce à la clé privée et à la commande **ssh-keygen**: ssh-keygen -y -f private_dsa.key > key.pub ===== Copier la clé publique sur le serveur distant ===== $ ssh-copy-id -i /chemin/man_cle/id_dsa.pub user@ip_machine Pour que la commande puisse s’exécuter correctement: * Le serveur doit écouter sur le port 22 * Le serveur doit accepter l'authentification par mot de passe. Dans le cas contraire, il faudra communiquer la clé publique à l'administrateur du serveur distant.