
5.6 KiB
Automatisation SSH pour Push - ihm_client
Vue d'ensemble
L'automatisation SSH pour les push permet d'utiliser automatiquement votre clé SSH pour tous les push vers le repository ihm_client
sur Gitea, sans avoir à spécifier manuellement les paramètres SSH.
Configuration automatique
1. Configuration Git globale
La configuration SSH est automatiquement appliquée :
git config --global url."git@git.4nkweb.com:".insteadOf "https://git.4nkweb.com/"
2. Vérification SSH
Le script vérifie automatiquement la configuration SSH :
ssh -T git@git.4nkweb.com
Scripts d'automatisation
Script principal : auto-ssh-push.sh
Le script scripts/auto-ssh-push.sh
offre plusieurs modes de push automatique :
Options disponibles
# Push rapide (message automatique)
./scripts/auto-ssh-push.sh quick
# Push avec message personnalisé
./scripts/auto-ssh-push.sh message "feat: nouvelle fonctionnalité"
# Push sur une branche spécifique
./scripts/auto-ssh-push.sh branch feature/nouvelle-fonctionnalite
# Push et préparation merge
./scripts/auto-ssh-push.sh merge feature/nouvelle-fonctionnalite main
# Status et push conditionnel
./scripts/auto-ssh-push.sh status
Exemples d'utilisation
# Push rapide sur la branche courante
./scripts/auto-ssh-push.sh quick
# Push avec message de commit
./scripts/auto-ssh-push.sh message "fix: correction du bug de synchronisation"
# Push sur une branche spécifique
./scripts/auto-ssh-push.sh branch develop
# Push et création de Pull Request
./scripts/auto-ssh-push.sh merge feature/nouvelle-fonctionnalite main
Alias Git globaux
Des alias Git ont été configurés pour simplifier les push :
# Push avec message personnalisé
git ssh-push "Mon message de commit"
# Push rapide (message automatique)
git quick-push
Fonctionnalités automatiques
1. Configuration SSH automatique
- Configuration Git pour utiliser SSH
- Vérification de l'authentification SSH
- Gestion des erreurs de configuration
2. Push automatique
- Ajout automatique de tous les changements (
git add .
) - Commit automatique avec message
- Push automatique vers la branche courante
3. Gestion des branches
- Détection automatique de la branche courante
- Support des branches personnalisées
- Préparation des Pull Requests
4. Validation et sécurité
- Vérification de l'authentification SSH avant push
- Messages d'erreur explicites
- Gestion des cas d'échec
Workflow recommandé
Développement quotidien
# 1. Faire vos modifications
# 2. Push rapide
./scripts/auto-ssh-push.sh quick
# Ou avec message personnalisé
./scripts/auto-ssh-push.sh message "feat: ajout de la fonctionnalité X"
Développement de fonctionnalités
# 1. Créer une branche
git checkout -b feature/nouvelle-fonctionnalite
# 2. Développer
# 3. Push sur la branche
./scripts/auto-ssh-push.sh branch feature/nouvelle-fonctionnalite
# 4. Préparer le merge
./scripts/auto-ssh-push.sh merge feature/nouvelle-fonctionnalite main
Intégration continue
# Push automatique après tests
./scripts/auto-ssh-push.sh message "ci: tests passés, déploiement automatique"
Dépannage
Problèmes courants
1. Échec d'authentification SSH
# Vérifier la clé SSH
ssh -T git@git.4nkweb.com
# Si échec, configurer une nouvelle clé
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_4nk
ssh-add ~/.ssh/id_ed25519_4nk
2. Configuration Git manquante
# Reconfigurer Git pour SSH
git config --global url."git@git.4nkweb.com:".insteadOf "https://git.4nkweb.com/"
3. Permissions de script
# Rendre le script exécutable
chmod +x scripts/auto-ssh-push.sh
Commandes de diagnostic
# Vérifier la configuration SSH
ssh -vT git@git.4nkweb.com
# Vérifier la configuration Git
git config --global --list | grep url
# Vérifier les remotes
git remote -v
Intégration avec CI/CD
Workflow Gitea Actions
Le workflow CI/CD (.gitea/workflows/ci.yml
) utilise automatiquement SSH :
- name: Setup SSH for Gitea
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H git.4nkweb.com >> ~/.ssh/known_hosts
git config --global url."git@git.4nkweb.com:".insteadOf "https://git.4nkweb.com/"
Variables d'environnement
SSH_PRIVATE_KEY
: Clé SSH privée pour l'authentificationSSH_PUBLIC_KEY
: Clé SSH publique (optionnelle)
Sécurité
Bonnes pratiques
- Les clés SSH sont stockées de manière sécurisée
- Les permissions des fichiers SSH sont correctement configurées
- La vérification des hôtes SSH est activée
- Les clés sont régulièrement renouvelées
Permissions recommandées
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 600 ~/.ssh/config
Évolution
Améliorations futures
- Support pour plusieurs clés SSH
- Rotation automatique des clés
- Intégration avec un gestionnaire de secrets
- Support pour l'authentification par certificats SSH
Maintenance
- Vérification régulière de la validité des clés SSH
- Mise à jour des configurations selon les bonnes pratiques
- Documentation des changements de configuration
Conclusion
L'automatisation SSH pour les push simplifie considérablement le workflow de développement en éliminant la nécessité de configurer manuellement SSH pour chaque opération Git. Le script auto-ssh-push.sh
et les alias Git offrent une interface simple et sécurisée pour tous les push vers le repository ihm_client
.