### ✅ **Résumé des commandes pour créer une clé GPG avec une sous-clé sur Debian**  

---

## **1️⃣ Générer une clé principale avec une sous-clé automatique**
```bash
gpg --full-generate-key
```
- Choisissez **RSA and RSA (par défaut)**
- Sélectionnez **4096 bits** (plus sécurisé)
- Définissez la durée de validité (**ex: 2y pour 2 ans, 0 pour illimité**)
- Renseignez **Nom, Email et un commentaire (facultatif)**
- Définissez un **mot de passe sécurisé** pour protéger votre clé

🔹 **Résultat** :  
GPG crée **une clé principale** (pour signer/certifier) et **une sous-clé** (pour chiffrer les messages).

---

## **2️⃣ Vérifier la clé et la sous-clé**
```bash
gpg --list-keys
```
Vous devriez voir quelque chose comme :
```
pub   rsa4096 2025-03-13 [SC]
      B8423648B0F61354C04C06CD45E9DF477F0EC7A5
uid          [ultimate] Donald Duck <donald@duck.com>
sub   rsa4096 2025-03-13 [E]
```
- `pub` = **Clé principale** (Sign & Certify)
- `sub` = **Sous-clé** (Encryption)

---

## **3️⃣ Ajouter une nouvelle sous-clé (facultatif)**
Si vous voulez **ajouter une sous-clé manuellement**, exécutez :
```bash
gpg --edit-key B8423648B0F61354C04C06CD45E9DF477F0EC7A5
```
Puis, dans l’interface interactive :
```text
addkey
```
- Choisissez **RSA (4096 bits)**
- Sélectionnez **Usage : E pour chiffrement, S pour signature, A pour authentification**
- Définissez la **durée de validité**
- Confirmez avec `save`

---

## **4️⃣ Exporter votre clé publique pour la partager**
```bash
gpg --armor --export donald@duck.com > public-key.asc
```
📤 **Envoyez ce fichier** aux personnes qui doivent vérifier vos signatures.

---

## **5️⃣ Exporter votre clé privée pour la sauvegarder (⚠️ Sécurisez-la !)**
```bash
gpg --export-secret-keys --armor donald@duck.com > private-key.asc
```
📌 **Ne partagez jamais cette clé !** Stockez-la en lieu sûr.

---

## **6️⃣ Envoyer votre clé publique à un serveur de clés**
```bash
gpg --keyserver hkps://keys.openpgp.org --send-keys B8423648B0F61354C04C06CD45E9DF477F0EC7A5
```
Cela permet aux autres d’obtenir votre clé pour vérifier vos signatures.

---

### 🎯 **Récapitulatif des commandes essentielles**
| **Action**                     | **Commande** |
|---------------------------------|-------------|
| Générer une clé GPG             | `gpg --full-generate-key` |
| Voir les clés                   | `gpg --list-keys` |
| Voir les clés secrètes           | `gpg --list-secret-keys` |
| Modifier une clé existante       | `gpg --edit-key <ID_CLÉ>` |
| Ajouter une sous-clé             | `addkey` (dans `gpg --edit-key`) |
| Exporter la clé publique         | `gpg --armor --export <email> > public-key.asc` |
| Exporter la clé privée (backup)  | `gpg --export-secret-keys --armor <email> > private-key.asc` |
| Publier la clé sur un serveur    | `gpg --keyserver hkps://keys.openpgp.org --send-keys <ID_CLÉ>` |

---