Ceci est une ancienne révision du document !
~~CLOSETOC~~
Configurer une connexion SSH par clé
Le principal mode de connexion à distance sur un serveur Linux est le SSH (Secure SHell). 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.
<note>Cette procédure a été réalisée et testée sur une VM debian 10.</note>
<note warning>Cette procédure nécessite des droits root. Faîtes donc attention à ce que vous faîtes.</note>
<note tip>Les clés autorisées pour une connexion SSH le sont aussi pour une connexion SFTP (le serveur SSH gérant aussi le SFTP). </note>
Prérequis
Pour se connecter en SSH à un serveur Linux il faut à minima :
- Un serveur
SSHinstallé 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:
apt-get update
- On installe les paquets nécessaires :
apt-get install -y openssh-server openssh-client
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 :
nano /etc/ssh/sshd_config
- On décommente la ligne
Port. - On peut modifier la valeur
22par une autre valeur, il faudra dans ce cas, adapter le pare-feu. - On décommente la ligne
ListenAddresset 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:
systemctl restart sshd.service
<note>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 :
man sshd
man sshd_config
</note>
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
SSHlira 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
# Nekan ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQE.......................................5ODsPuCdoodmzQ== nekan@shyrkasys # Shyrka ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA........................................BqLKk0FX0yBe2T/9yiXB0dqQ== shyrka@shyrkasys
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 (Secure Socket Layer) 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 : Lien
— Nicolas THOREZ 2020/02/20 10:02
Discussion