Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== Configurer une connexion SSH par clé ====== <label type="info">Création</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/02/20 10:02// Le principal mode de connexion à distance sur un serveur Linux est le ''SSH'' (//**S**ecure **SH**ell//). Basiquement, il requiert un nom d'utilisateur et un mot de passe. On peut renforcer la sécurité de la connexion en y ajoutant une identification via clé ''RSA'', qui peut compléter ou remplacer le mot de passe, la clé elle-même pouvant être protégée par un mot de passe ou pas. <callout type="primary" icon="true" title="Environnement">Cette procédure a été réalisée et testée sur une VM debian 10.</callout> <callout type="danger" icon="true" title="Droits">Cette procédure nécessite des droits ''root''. Faîtes donc attention à ce que vous faîtes.</callout> <callout type="tip" icon="true" title="SFTP">Les clés autorisées pour une connexion ''SSH'' le sont aussi pour une connexion ''SFTP'' (le serveur ''SSH'' gérant aussi le ''SFTP''). </callout> ===== Prérequis ===== Pour se connecter en ''SSH'' à un serveur Linux il faut à minima : * Un serveur ''SSH'' installé et en écoute. * Un pare-feu correctement configurée. Concernant le serveur ''SSH'', il est généralement installé par défaut ( ou son installation est proposée durant la phase d'installation du serveur). Dans le cas où, il faudrait l'installer à la main : * On met à jour les dépôts ''APT'' : <sxh bash>apt-get update</sxh> * On installe les paquets nécessaires : <sxh bash>apt-get install -y openssh-server openssh-client</sxh> Concernant le pare-feu, je vous laisse vous rediriger vers la documentation de votre solution sachant que le port d'écoute par défaut et le ''22''. ===== Configuration du serveur SSH ===== * On édite le fichier de configuration : <sxh bash>nano /etc/ssh/sshd_config</sxh> * On décommente la ligne ''Port''. * On peut modifier la valeur ''22'' par une autre valeur, il faudra dans ce cas, adapter le pare-feu. * On décommente la ligne ''ListenAddress'' et on modifie sa valeur par l'adresse IP du serveur. * On enregistre avec ''CTRL+O'' * On quitte avec ''CTRL+X'' * On redémarre le service ''SSH'' : <sxh bash>systemctl restart sshd.service</sxh> <callout type="info" icon="true" title="Paramétrages">Le fichier de configuration contient de nombreuses options de sécurité et de log. Les modifications présentées ici sont le minimum à faire pour activer la connexion par clé. Pour plus d'informations sur les autres options : * <sxh bash>man sshd</sxh> * <sxh bash>man sshd_config</sxh> </callout> ===== Ajout des clés autorisées à se connecter ===== A ce stade, le serveur accepte les authentifications par clé. Encore faut-il qu'il sache qu'elles clés sont autorisées à se connecter au serveur. Pour cela, il va lire le fichier ''authorized_keys'', ce dernier se trouvant dans le dossier ''.ssh'', lui-même dans le dossier "home" de l'utilisateur. * Ainsi pour l'utilisateur "Nekan" se connectant à un serveur, le service ''SSH'' lira les clés contenues dans ''/home/nekan/.ssh/authorized_keys''. * Pour l'utilisateur "root" (non conseillé) se sera ''/etc/root/.ssh/authorized_keys''. ==== Exemple de fichier authorized_keys ==== <file># Nekan ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQE.......................................5ODsPuCdoodmzQ== nekan@shyrkasys # Shyrka ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA........................................BqLKk0FX0yBe2T/9yiXB0dqQ== shyrka@shyrkasys </file> Chaque entrée est la clé publique de l'utilisateur qui cherche à se connecter. Pour les ajouter aux fichiers, il suffit d'éditer ces derniers et d'y coller le contenu des clés ''SSL'' publiques concernées. Pour le fonctionnement, le mécanisme ''SSL'' (//**S**ecure **S**ocket **L**ayer//) vérifie cette clé avec la clé privée de l'utilisateur et si la vérification est un succès, alors la connexion ''SSH'' est autorisée. * Créer des clés SSL : [[create_ssl_key|Lien]] ~~DISCUSSION~~ ssh_key.txt Dernière modification : 2021/03/05 15:18de nekan