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.
Héberge la source de vérité accessible par vos serveurs et vos collègues 24/7.
Indispensable pour préserver le secret commercial de votre code métier et votre propriété intellectuelle.
Authentification cryptographique asymétrique sans mot de passe, hautement recommandée.
Interdit les suppressions accidentelles et exige des revues de code avant mise en production.
# 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.
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 !
| Méthode | Niveau de Sécurité | Usage Recommandé |
|---|---|---|
| Clé SSH Ed25519 | Optimal (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é & Restreint | Serveurs VPS de production (droit de git pull uniquement) |
| Mot de passe classique | Désactivé par GitHub depuis 2021 | Obsolète et rejeté par le protocole Git |