reseau:debian:clesshcertificat
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
reseau:debian:clesshcertificat [2025/01/07 22:27] – [Les commandes utiles] techer.charles_educ-valadon-limoges.fr | reseau:debian:clesshcertificat [2025/06/11 12:53] (Version actuelle) – [Mise en place côté client] admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Configurer une authentification SSH avec certificat ====== | ====== Configurer une authentification SSH avec certificat ====== | ||
+ | ===== Resources ===== | ||
+ | * http:// | ||
+ | * https:// | ||
+ | * http:// | ||
+ | * https:// | ||
===== Principes ===== | ===== Principes ===== | ||
Ligne 7: | Ligne 12: | ||
* **Intérêt pour le client** | * **Intérêt pour le client** | ||
- | * **Intérêt pour le serveur** : la **clé publique du CA** permet de vérifier le certificat présenté par le client sans avoir à renseigner le fichier | + | * **Intérêt pour le serveur** : la **clé publique du CA** permet de vérifier le certificat présenté par le client sans avoir à renseigner le fichier **authorized_keys**. |
+ | |||
===== Les éléments nécessaires | ===== Les éléments nécessaires | ||
Ligne 13: | Ligne 20: | ||
* le certificat du client | * le certificat du client | ||
* l' | * l' | ||
+ | |||
+ | ===== Format d’un clé publique ssh ===== | ||
+ | |||
+ | Une clé publique SSH est une chaîne de texte en une seule ligne, avec plusieurs parties distinctes : | ||
+ | < | ||
+ | |||
+ | **Type** : Spécifie l' | ||
+ | * ssh-rsa : clé utilisant l' | ||
+ | * ecdsa-sha2-nistp256 : clé ECDSA avec une courbe elliptique. | ||
+ | * ssh-ed25519 : clé basée sur l' | ||
+ | |||
+ | **Clé encodée en base64** : chaîne encodée en Base64 représentant la clé publique. | ||
+ | |||
+ | **Commentaire facultatif** : information pour identifier la clé : nom d' | ||
+ | |||
===== Mise en place côté serveur ===== | ===== Mise en place côté serveur ===== | ||
Ligne 31: | Ligne 53: | ||
===== Mise en place côté client ===== | ===== Mise en place côté client ===== | ||
Le client doit faire signer sa clé publique pour obtenir un certificat qui doit être placé dans le même répertoire que sa clé privé et publique. | Le client doit faire signer sa clé publique pour obtenir un certificat qui doit être placé dans le même répertoire que sa clé privé et publique. | ||
+ | |||
+ | < | ||
+ | cp client_key ~/.ssh/ | ||
+ | cp client_cert.pub ~/.ssh/ | ||
+ | </ | ||
+ | |||
+ | Les permissions doivent être correctes : | ||
+ | |||
+ | < | ||
+ | chmod 600 ~/ | ||
+ | chmod 644 ~/ | ||
+ | </ | ||
Lors d’une connexion avec la clé privée, le certificat sera automatiquement présenté au serveur. | Lors d’une connexion avec la clé privée, le certificat sera automatiquement présenté au serveur. | ||
Ligne 36: | Ligne 70: | ||
Le client ssh doit seulement indique quelle clé privée utiliser avec l’option -i | Le client ssh doit seulement indique quelle clé privée utiliser avec l’option -i | ||
< | < | ||
- | ssh -i ~/.ssh/id_ed25519 | + | ssh -i ~/.ssh/client_key |
</ | </ | ||
Ligne 42: | Ligne 76: | ||
< | < | ||
- | ssh -v -i ~/.ssh/id_ed25519 | + | ssh -v -i ~/.ssh/client_key |
</ | </ | ||
+ | |||
+ | Vous pouvez utiliser aussi le fichier de configuration du client ssh | ||
+ | < | ||
+ | Host < | ||
+ | HostName < | ||
+ | User < | ||
+ | IdentityFile ~/ | ||
+ | CertificateFile ~/ | ||
+ | |||
+ | </ | ||
===== Les commandes utiles ===== | ===== Les commandes utiles ===== | ||
* obtenir la clé publique à partir de la clé privée d'une identité utilisateur au format openSSH | * obtenir la clé publique à partir de la clé privée d'une identité utilisateur au format openSSH | ||
Ligne 61: | Ligne 105: | ||
< | < | ||
- | $ ssh-keygen -f id_rsa.pem | + | $ ssh-keygen |
</ | </ | ||
* Obtenir la clé publique de la CA du certificat de la CA au format openSSH pour une connexion ssh | * Obtenir la clé publique de la CA du certificat de la CA au format openSSH pour une connexion ssh | ||
+ | |||
* Extraire la clé publique du certificat du CA | * Extraire la clé publique du certificat du CA | ||
Ligne 77: | Ligne 122: | ||
$ ssh-keygen -f ca.pem > ca.pub | $ ssh-keygen -f ca.pem > ca.pub | ||
</ | </ | ||
+ | |||
+ | * Vérifiez les journaux SSH pour voir si le certificat est utilisé correctement : | ||
+ | |||
+ | < | ||
+ | journalctl -u ssh | ||
+ | </ | ||
+ | |||
+ | * Sur le clien, ajoutez l’option -v pour obtenir plus de détails sur le processus de connexion : | ||
+ | |||
+ | < | ||
+ | ssh -v < | ||
+ | </ | ||
+ | |||
+ | * Facilité d’utilisation avec plusieurs serveurs en faisant confiance à la même CA en ajoutant la clé publique de la CA à ~/ | ||
+ | |||
+ | |||
+ | < | ||
+ | echo " | ||
+ | </ | ||
+ | |||
+ | Cela permet au client de faire confiance à tous les serveurs avec des certificats signés par cette CA. | ||
+ | |||
+ | * Visualiser le contenu d'un certificat | ||
+ | |||
+ | < | ||
+ | openssl x509 -in filename.pem -text –noout | ||
+ | </ | ||
+ | -noout pour ne pas afficher en base64 qui permet d’encode des données binaires ASCII | ||
+ | |||
+ | * emetteur du certificat : -issuer | ||
+ | |||
+ | < | ||
+ | openssl x509 -in filename.pem -issuer –noout | ||
+ | </ | ||
+ | |||
+ | * Sujet du certificat : -subject | ||
+ | |||
+ | < | ||
+ | openssl x509 -in filename.pem -subject –noout | ||
+ | </ | ||
+ | |||
+ | * Empreinte digitale : -fingeprint | ||
+ | |||
+ | < | ||
+ | openssl x509 -in filename.pem -fingerprint –noout | ||
+ | </ | ||
+ | |||
+ | * Clé publique : -pubkey | ||
+ | |||
+ | < | ||
+ | openssl x509 -in filename.pem –pubkey -noout –out id_rsa.pub | ||
+ | </ | ||
+ | |||
reseau/debian/clesshcertificat.1736285246.txt.gz · Dernière modification : 2025/01/07 22:27 de techer.charles_educ-valadon-limoges.fr