Déploiement
Déploiement • Chapitre 10 : Déploiement avec Git et GitHub

Création d'un dépôt GitHub

GitHub centralise vos dépôts Git distants et sert de tour de contrôle pour l'intégration continue. Configurez correctement la visibilité du dépôt, les règles de protection de branches et l'authentification moderne par clés SSH.

🌐
Remote Centralisé

Héberge la source de vérité accessible par vos serveurs et vos collègues 24/7.

🔒
Dépôt Privé

Indispensable pour préserver le secret commercial de votre code métier et votre propriété intellectuelle.

🔑
Clés SSH Ed25519

Authentification cryptographique asymétrique sans mot de passe, hautement recommandée.

🛡️
Branch Protection

Interdit les suppressions accidentelles et exige des revues de code avant mise en production.

ssh-key-github-setup.sh
# 1. Générer une paire de clés SSH ultra-sécurisée (algorithme Ed25519)
$ ssh-keygen -t ed25519 -C "admin@learnweb.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/admin/.ssh/id_ed25519): [Entrée]

# 2. Démarrer l'agent SSH et y ajouter la clé privée
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/id_ed25519

# 3. Afficher la clé publique à coller dans GitHub Settings -> SSH Keys
$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExampleKeyForDeployProduction admin@learnweb.com

# 4. Tester la connexion cryptée avec GitHub
$ ssh -T git@github.com
Hi dev-learnweb! You've successfully authenticated, but GitHub does not provide shell access.

Guide Approfondi & Architecture Système

1. Choisir entre Dépôt Public et Dépôt Privé

La stratégie de visibilité conditionne vos déploiements :
  • Dépôt Privé (Recommandé en Production) : Seuls les collaborateurs autorisés et les clés de déploiement (Deploy Keys) ont accès au code. Les robots de plateformes tierces ne peuvent pas inspecter votre architecture.
  • Dépôt Public : Réservé aux projets open-source. Toute fuite de secret y est immédiatement publique et irréversible sans régénération immédiate de toutes vos clés d'API.

2. La Sécurité des Clés de Déploiement (Deploy Keys)

Pour connecter un serveur de production autonome à GitHub sans lui donner accès à l'ensemble de votre compte personnel, utilisez une Deploy Key :

Dans GitHub > Dépôt > Settings > Deploy Keys, vous pouvez enregistrer une clé SSH en Lecture Seule (Read-only) spécifique à ce dépôt. Si votre serveur venait à être compromis, l'attaquant ne pourrait ni modifier le code source sur GitHub, ni accéder à vos autres dépôts !

Tableau Comparatif : Méthodes d'Authentification GitHub

MéthodeNiveau de SécuritéUsage Recommandé
Clé SSH Ed25519Optimal (Asymétrique 256 bits)Développement local quotidien et scripts d'automatisation serveur
Personal Access Token (Fine-grained)Très Élevé (Périmètre & Date d'expiration)Pipelines CI/CD externes, outils tiers nécessitant des droits REST
Deploy Key (Par Dépôt)Isolé & RestreintServeurs VPS de production (droit de git pull uniquement)
Mot de passe classiqueDésactivé par GitHub depuis 2021Obsolète et rejeté par le protocole Git