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 23:06] – [Les commandes utiles] techer.charles_educ-valadon-limoges.fr | reseau:debian:clesshcertificat [2025/06/19 17:26] (Version actuelle) – [Notes] admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Configurer une authentification SSH avec certificat ====== | ====== Configurer une authentification SSH avec certificat ====== | ||
+ | ===== Resources ===== | ||
+ | * http:// | ||
+ | * https:// | ||
+ | * http:// | ||
+ | * https:// | ||
+ | * https:// | ||
===== Principes ===== | ===== Principes ===== | ||
Ligne 74: | Ligne 80: | ||
</ | </ | ||
- | Vous pouvez utiliser aussi le fichier de configuraito | + | Vous pouvez utiliser aussi le fichier de configuration |
< | < | ||
Host < | Host < | ||
Ligne 130: | Ligne 136: | ||
</ | </ | ||
+ | * 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 | ||
+ | </ | ||
+ | |||
+ | ===== Notes ===== | ||
+ | Configurer une authentification SSH avec des certificats (et non simplement des clés publiques/ | ||
+ | |||
+ | 1. Générer une paire de clés pour l' | ||
+ | Sur la machine client (utilisateur) : | ||
+ | |||
+ | < | ||
+ | ssh-keygen -t rsa -b 4096 -f ~/ | ||
+ | </ | ||
+ | |||
+ | Cela crée : | ||
+ | * id_rsa_cert (clé privée) | ||
+ | * id_rsa_cert.pub (clé publique) | ||
+ | |||
+ | 2. Créer une autorité de certification (CA) | ||
+ | Sur la machine administrateur (ou serveur CA) : | ||
+ | |||
+ | < | ||
+ | ssh-keygen -f / | ||
+ | |||
+ | </ | ||
+ | |||
+ | Cela crée : | ||
+ | * / | ||
+ | * / | ||
+ | |||
+ | 3. Signer la clé publique de l' | ||
+ | Toujours sur la machine CA : | ||
+ | |||
+ | < | ||
+ | ssh-keygen -s / | ||
+ | </ | ||
+ | |||
+ | * -I : identifiant du certificat | ||
+ | * -n : nom d' | ||
+ | * -V : durée de validité (ici 52 semaines) | ||
+ | |||
+ | Cela génère un fichier id_rsa_cert-cert.pub. | ||
+ | |||
+ | Visualiser le contenu du certificat : | ||
+ | < | ||
+ | ssh-keygen -L -f id_rsa_cert.pub | ||
+ | </ | ||
+ | |||
+ | |||
+ | 4. Configurer le serveur SSH pour accepter les certificats | ||
+ | Sur le serveur SSH (où l' | ||
+ | |||
+ | < | ||
+ | TrustedUserCAKeys / | ||
+ | </ | ||
+ | |||
+ | Puis redémarrez le service SSH : | ||
+ | |||
+ | < | ||
+ | sudo systemctl restart sshd | ||
+ | |||
+ | </ | ||
+ | |||
+ | 5. Configurer le client SSH | ||
+ | Sur la machine client, dans ~/ | ||
+ | |||
+ | < | ||
+ | Host monserveur | ||
+ | HostName monserveur.exemple.com | ||
+ | User nom_utilisateur | ||
+ | IdentityFile ~/ | ||
+ | CertificateFile ~/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | 6. Connexion | ||
+ | |||
+ | < | ||
+ | ssh monserveur | ||
+ | |||
+ | </ | ||
+ | |||
+ | Script Bash automatisé pour configurer une authentification SSH avec des certificats : | ||
+ | |||
+ | |||
+ | |||
+ | Ce que fait le script : | ||
+ | * Génère une paire de clés RSA pour l' | ||
+ | * Crée une autorité de certification (CA) SSH. | ||
+ | * Signe la clé publique de l' | ||
+ | * Configure le serveur SSH pour faire confiance à la CA. | ||
+ | * Crée un fichier ~/ | ||
+ | |||
+ | Utilisation : | ||
+ | * Télécharge le script. | ||
+ | * Rendre exécutable : | ||
+ | |||
+ | < | ||
+ | chmod +x configurer_authentification_ssh.sh | ||
+ | </ | ||
+ | |||
+ | * contenu du script : | ||
+ | < | ||
+ | #!/bin/bash | ||
+ | ==== Script d' | ||
+ | s | ||
+ | # À exécuter avec les droits root ou sudo | ||
+ | |||
+ | # === Étape 1 : Générer une paire de clés pour l' | ||
+ | echo "[1/5] Génération de la paire de clés utilisateur..." | ||
+ | USER_KEY_DIR=" | ||
+ | USER_KEY_NAME=" | ||
+ | mkdir -p " | ||
+ | ssh-keygen -t rsa -b 4096 -f " | ||
+ | |||
+ | # === Étape 2 : Créer une autorité de certification (CA) === | ||
+ | echo "[2/5] Création de l' | ||
+ | CA_DIR="/ | ||
+ | CA_KEY_NAME=" | ||
+ | sudo ssh-keygen -f " | ||
+ | |||
+ | # === Étape 3 : Signer la clé publique de l' | ||
+ | echo "[3/5] Signature de la clé publique utilisateur..." | ||
+ | CERT_ID=" | ||
+ | USERNAME=" | ||
+ | VALIDITY=" | ||
+ | sudo ssh-keygen -s " | ||
+ | |||
+ | # === Étape 4 : Configurer le serveur SSH pour accepter les certificats === | ||
+ | echo "[4/5] Configuration du serveur SSH..." | ||
+ | sudo bash -c "echo ' | ||
+ | sudo systemctl restart sshd | ||
+ | |||
+ | # === Étape 5 : Créer un fichier de configuration SSH côté client === | ||
+ | echo "[5/5] Création du fichier de configuration SSH client..." | ||
+ | CONFIG_FILE=" | ||
+ | SERVER_ALIAS=" | ||
+ | SERVER_HOST=" | ||
+ | |||
+ | cat <<EOF > " | ||
+ | Host $SERVER_ALIAS | ||
+ | HostName $SERVER_HOST | ||
+ | User $USERNAME | ||
+ | IdentityFile $USER_KEY_DIR/ | ||
+ | CertificateFile $USER_KEY_DIR/ | ||
+ | EOF | ||
+ | |||
+ | chmod 600 " | ||
+ | |||
+ | echo " Configuration terminée. Vous pouvez maintenant vous connecter avec : ssh $SERVER_ALIAS" | ||
+ | |||
+ | </ |
reseau/debian/clesshcertificat.1736287562.txt.gz · Dernière modification : 2025/01/07 23:06 de techer.charles_educ-valadon-limoges.fr