ssh_key

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>

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

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

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

Nicolas THOREZ 2020/02/20 10:02

Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • ssh_key.1582192403.txt.gz
  • Dernière modification : 2020/02/20 08:53
  • (modification externe)