User Tools

Site Tools


wiki:ssh:cert_auth

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
wiki:ssh:cert_auth [2024/07/15 19:31] – created hmattalianowiki:ssh:cert_auth [2024/08/21 14:20] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Authentification par Clé ======+====== Authentification par Clé publique======
  
 +L'authentification **SSH** par **clé** permet de choisir les clients **autorisés** à se connecter sur le serveur SSH. Mais l’intérêt est aussi de pouvoir tous les **désactiver** en retirant la clé de **confiance** sur le serveur.
 +
 +{{ :wiki:ssh:key_auth_ssh4.png?700 |Schéma résumé}}
 +
 +<WRAP center round info 100%>
 +===== Sources importantes =====
 +  * [[https://www.it-connect.fr/chapitres/authentification-ssh-par-cles/|Article IT-Connect : Authentification SSH par clés ]]
 +  * [[https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server-fr#comment-integrer-votre-cle-publique-lors-de-la-creation-de-votre-serveur|Article DigitalOcean : Comment configurer une authentification par clé SSH sur un serveur Linux]]
 +
 +</WRAP>
 +
 + 
 +===== Générer la clé publique =====
 + 
 +La clé doit etre générer par le client et par la suite transmit au serveur ssh.
 +
 +installer le paquet OpenSSH si il ne l'est pas.
 +
 +<code>sudo apt install openssh-client</code>
 +
 +Puis générer la clé avec **ssh-keygen**.
 +
 +La clé sera générer dans le dossier **/home/utilisateur/.ssh/**
  
 <code>ssh-keygen</code> <code>ssh-keygen</code>
 +
 +Si aucune option n'est spécifiée, une clé RSA de 2048 bits sera créée.
 +
 +L'option **-b** permet de spécifier la taille.
  
 <code>ssh-keygen -b 4096</code> <code>ssh-keygen -b 4096</code>
 +
 +Afin de protéger la clé en cas de compromission, il faut définir une passphrase.
 +
 +Son Fingerprint sera également afficher.
 +
 +{{ :wiki:ssh:key_auth_ssh1.png?600 |}}
 +
 +===== Configurer la clé sur le serveur =====
 +
 +Avec **OpenSSH** on peut ajouter la clé avec **ssh-copy-id**.
  
 <code>ssh-copy-id utilisateur@serveur </code> <code>ssh-copy-id utilisateur@serveur </code>
 +
 +**-p** Pour spécifier le port.
  
 <code>ssh-copy-id -p 500 utilisateur@serveur </code> <code>ssh-copy-id -p 500 utilisateur@serveur </code>
 +
 +{{ :wiki:ssh:key_auth_ssh2.png?700 |}}
 +
 +Il faudra spécifier le mot de passe une dernière fois.
 +
 +La connexion avec ce client se fera désormais avec la passphrase.
 +
 +{{ :wiki:ssh:key_auth_ssh3.png?700 |}}
 +
 +La clé est désormais stocker sur le serveur dans le dossier .**ssh** de l'utilisateur connecté.
 +
 +**~/.ssh** (vérifier la permission du dossier en **700**)
 +
 +Et la liste des clés autoriser dans lee fichier **authorized_keys**.
 +
 +**~/.ssh/authorized_keys** (vérifier la permission du fichier en **600**)
 +
 +===== Désactiver la connexion par mot de passe =====
 +
 +<WRAP center round important 100%>
 +Avant de désactiver la connexion par mot de passe, s'assurer qu'au moins un client peut se connecter par clé.
 +</WRAP>
 +
 +
 +Éditer le ficher **/etc/ssh/sshd_config**.
 +
 +<code>sudo vim /etc/ssh/sshd_config</code>
 +
 +Éditer ces 2 lignes :
 +
 +<code>
 +PasswordAuthentication no
 +PubkeyAuthentication yes
 +</code>
 +
 +Puis relancer le service **sshd**.
 +
 +<code>sudo systemctl restart sshd</code>
 +
 +Désormais seul les clients possédant la clé peuvent se connecter, les autres auront le message (Permission denied)
 +
 +===== Debugger la connexion =====
 +
 +Activez le mode verbose sur le client pour déboguer :
 +
 +<code>ssh -vv user@server</code>
 +
 +
 +
wiki/ssh/cert_auth.1721064714.txt.gz · Last modified: 2024/08/21 14:20 (external edit)