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

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 :

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.

  • On édite le fichier de configuration :

nano /etc/ssh/sshd_config

  • 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 :

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

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.
# 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
Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • ssh_key.txt
  • Dernière modification : 2021/03/05 15:18
  • de nekan