Configuration GitHub
Authentification et connexion à GitHub
Pour que Git et vos agents de code puissent interagir avec GitHub, vous devez configurer l’authentification. Ce chapitre vous guide à travers les options.
Les méthodes d’authentification
| Méthode | Sécurité | Facilité | Recommandation |
|---|---|---|---|
| SSH Keys | ⭐⭐⭐ | ⭐⭐ | Production/quotidien |
| Personal Access Token | ⭐⭐ | ⭐⭐⭐ | Scripts/CI |
| GitHub CLI (gh) | ⭐⭐⭐ | ⭐⭐⭐ | Tout usage |
Méthode 1 : Clés SSH (recommandée)
Générer une clé SSH
# Générer une nouvelle clé ED25519 (recommandé)
ssh-keygen -t ed25519 -C "[email protected]"
# Si votre système ne supporte pas ED25519
ssh-keygen -t rsa -b 4096 -C "[email protected]"Lors de la génération : - Emplacement : acceptez le défaut (~/.ssh/id_ed25519) - Passphrase : entrez un mot de passe fort (recommandé) ou laissez vide
Ajouter la clé à l’agent SSH
macOS :
# Démarrer l'agent
eval "$(ssh-agent -s)"
# Ajouter la clé (avec stockage dans le trousseau)
ssh-add --apple-use-keychain ~/.ssh/id_ed25519Linux :
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519Windows (Git Bash) :
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519Ajouter la clé publique à GitHub
- Copiez votre clé publique :
# macOS
cat ~/.ssh/id_ed25519.pub | pbcopy
# Linux (avec xclip)
cat ~/.ssh/id_ed25519.pub | xclip -selection clipboard
# Windows (Git Bash)
cat ~/.ssh/id_ed25519.pub | clip- Allez sur GitHub → Settings → SSH and GPG keys → New SSH key
- Donnez un titre descriptif (ex: “MacBook Pro 2024”)
- Collez la clé publique
- Cliquez “Add SSH key”
Tester la connexion
ssh -T [email protected]Réponse attendue :
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
La première fois, vous verrez un avertissement sur l’authenticité du host. Tapez “yes” pour continuer et ajouter GitHub à vos hosts connus.
Méthode 2 : GitHub CLI
GitHub CLI (gh) simplifie énormément l’authentification et les interactions avec GitHub.
Installation
macOS :
brew install ghWindows :
winget install GitHub.cliLinux (Debian/Ubuntu) :
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install ghAuthentification
gh auth loginSuivez les prompts : 1. Choisissez “GitHub.com” 2. Choisissez “HTTPS” ou “SSH” selon votre préférence 3. Authentifiez via le navigateur
Vérification
gh auth statusCommandes utiles
# Cloner un repo
gh repo clone owner/repo
# Créer un repo
gh repo create my-project --private
# Voir vos repos
gh repo list
# Créer une issue
gh issue create
# Créer une PR
gh pr create
# Voir le statut des checks
gh pr checksMéthode 3 : Personal Access Token (PAT)
Pour les scripts et la CI, les PAT sont souvent nécessaires.
Créer un PAT
- GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
- “Generate new token (classic)”
- Donnez un nom descriptif
- Sélectionnez les scopes nécessaires :
repo: accès complet aux reposworkflow: pour GitHub Actionsread:org: si vous travaillez avec des organisations
- Copiez le token immédiatement (il ne sera plus visible)
- Ne commitez jamais un token dans votre code
- Utilisez des variables d’environnement
- Définissez une date d’expiration
- Utilisez les scopes minimums nécessaires
Utiliser un PAT
# Stocker dans le credential helper
git config --global credential.helper store
# Puis lors du premier push, entrez le token comme mot de passe
# Ou via variable d'environnement (pour scripts)
export GITHUB_TOKEN="ghp_xxxxxxxxxxxx"Configuration pour les agents de code
Claude Code
Claude Code utilise généralement l’authentification existante de Git :
# S'assurer que SSH est configuré
ssh -T [email protected]
# Ou utiliser gh pour l'auth
gh auth login
# Claude Code utilisera automatiquement ces credentialsCursor et VS Code
Ces éditeurs peuvent utiliser l’authentification GitHub intégrée :
- Ouvrez la palette de commandes (Cmd/Ctrl + Shift + P)
- Cherchez “GitHub: Sign in”
- Suivez le flux d’authentification dans le navigateur
Gérer plusieurs comptes GitHub
Si vous avez des comptes perso et pro séparés :
Option 1 : SSH avec hosts différents
Créez ~/.ssh/config :
# Compte personnel
Host github.com-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
# Compte professionnel
Host github.com-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
Puis clonez avec le bon host :
# Perso
git clone [email protected]:username/repo.git
# Pro
git clone [email protected]:company/repo.gitOption 2 : Gitconfig conditionnel
Dans ~/.gitconfig :
[user]
name = Nom Personnel
email = [email protected]
[includeIf "gitdir:~/code/work/"]
path = ~/.gitconfig-workDans ~/.gitconfig-work :
[user]
name = Nom Pro
email = [email protected]Vérifier votre configuration
# Test SSH
ssh -T [email protected]
# Test gh
gh auth status
# Voir la config Git
git config --list
# Tester un clone
git clone [email protected]:octocat/Hello-World.git /tmp/test-clone
rm -rf /tmp/test-cloneDépannage courant
“Permission denied (publickey)”
# Vérifier que l'agent SSH tourne
eval "$(ssh-agent -s)"
# Vérifier que la clé est chargée
ssh-add -l
# Si vide, ajouter la clé
ssh-add ~/.ssh/id_ed25519“Repository not found”
- Vérifiez que vous avez accès au repo
- Vérifiez l’URL (SSH vs HTTPS)
- Vérifiez que vous êtes authentifié avec le bon compte
Token expiré
# Avec gh
gh auth refresh
# Avec PAT : créez un nouveau token sur GitHubVotre authentification est configurée ! Passons aux fondamentaux de Git.