Table des matières

Configurer une connexion SSH par clé

CréationNicolas THOREZ 2020/02/20 10:02

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.

Environnement

Cette procédure a été réalisée et testée sur une VM debian 10.

Droits

Cette procédure nécessite des droits root. Faîtes donc attention à ce que vous faîtes.

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).

Prérequis

Pour se connecter en SSH à un serveur Linux il faut à minima :

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 :

apt-get update

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

nano /etc/ssh/sshd_config

systemctl restart sshd.service

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 :
  • man sshd
  • man sshd_config

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.

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.