# Configuration SSH automatique pour ihm_client ## Vue d'ensemble Le projet `ihm_client` utilise automatiquement les clés SSH pour toutes les opérations Git, que ce soit en local ou dans l'environnement CI/CD Gitea Actions. ## Configuration automatique ### Environnement CI/CD Dans l'environnement CI/CD Gitea Actions, la configuration SSH est automatique : 1. **Variable d'environnement** : La clé SSH privée est fournie via la variable `SSH_PRIVATE_KEY` 2. **Configuration automatique** : Le workflow CI configure automatiquement SSH pour `git.4nkweb.com` 3. **Test de connexion** : La connexion SSH est testée avant chaque opération Git ### Environnement local En local, le script `scripts/setup-ssh-ci.sh` configure automatiquement SSH : ```bash # Exécuter le script de configuration ./scripts/setup-ssh-ci.sh ``` ## Configuration manuelle Si la configuration automatique ne fonctionne pas, voici les étapes manuelles : ### 1. Générer une clé SSH ```bash ssh-keygen -t rsa -b 4096 -C "votre-email@example.com" ``` ### 2. Ajouter la clé publique à Gitea 1. Copier le contenu de `~/.ssh/id_rsa.pub` 2. Aller dans les paramètres de votre compte Gitea 3. Ajouter la clé SSH dans la section "SSH Keys" ### 3. Configurer Git pour utiliser SSH ```bash git config --global url."git@git.4nkweb.com:".insteadOf "https://git.4nkweb.com/" ``` ### 4. Tester la connexion ```bash ssh -T git@git.4nkweb.com ``` ## Workflow CI/CD Le workflow CI/CD (`.gitea/workflows/ci.yml`) inclut : ### Étapes SSH automatiques 1. **Setup SSH for Gitea** : Configure la clé SSH et les paramètres de connexion 2. **Checkout code** : Utilise SSH pour cloner le repository 3. **Tests et build** : Exécute les tests et builds avec SSH configuré ### Variables requises - `SSH_PRIVATE_KEY` : Clé SSH privée pour l'authentification - `SSH_PUBLIC_KEY` : Clé SSH publique (optionnelle) ## Sécurité ### Bonnes pratiques - Les clés SSH sont stockées de manière sécurisée dans les secrets Gitea - Les permissions des fichiers SSH sont correctement configurées (600 pour les clés privées) - La vérification des hôtes SSH est configurée pour `git.4nkweb.com` ### Permissions ```bash # Permissions correctes pour les fichiers SSH chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub chmod 600 ~/.ssh/config ``` ## Dépannage ### Problèmes courants 1. **Permission denied** : Vérifier les permissions des fichiers SSH 2. **Host key verification failed** : Ajouter `git.4nkweb.com` aux hôtes connus 3. **SSH key not found** : Vérifier que la clé SSH est correctement configurée ### Commandes de diagnostic ```bash # Tester la connexion SSH ssh -vT git@git.4nkweb.com # Vérifier la configuration Git git config --global --list | grep url # Vérifier les permissions SSH ls -la ~/.ssh/ ``` ## Intégration avec 4NK_node Lors de l'intégration avec `4NK_node`, la configuration SSH est préservée : - Les clés SSH sont partagées entre les projets - La configuration Git utilise SSH pour tous les repositories 4NK - Le workflow CI/CD maintient la cohérence SSH ## Évolution ### Améliorations futures - Support pour plusieurs clés SSH - Rotation automatique des clés - Intégration avec un gestionnaire de secrets externe - Support pour l'authentification par certificats SSH ### Maintenance - Vérification régulière de la validité des clés SSH - Mise à jour des configurations SSH selon les bonnes pratiques - Documentation des changements de configuration SSH