GitHub SSH
🛠️ Objectif Configuration ~/.ssh/config
→ Simplifier l’utilisation de SSH
→ Choisir automatiquement la bonne clé
→ Configurer GitHub proprement
→ Éviter les erreurs “Permission denied (publickey)”
✅ Exemple de configuration ~/.ssh/config propre
Crée ou modifie ce fichier :
~/.ssh/config
Et mets-y ceci :
# ===============================
# Configuration SSH GitHub
# ===============================
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
Explication
| Directive | Rôle |
|---|---|
Host github.com
|
S’applique uniquement aux connexions vers GitHub |
HostName github.com
|
Le vrai nom du serveur |
User git
|
Nom d’utilisateur utilisé par Git pour les connexions SSH |
IdentityFile ~/.ssh/id_ed25519
|
Ta clé privée utilisée pour GitHub |
IdentitiesOnly yes
|
Force SSH à utiliser seulement cette clé (évite que SSH en teste trop et se fasse bloquer) |
🔐 Ajouter plusieurs clés (si tu as plusieurs comptes GitHub)
Tu peux isoler les identités avec un alias :
# Compte GitHub personnel
Host github.com-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
IdentitiesOnly yes
# Compte GitHub Pro
Host github.com-pro
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_pro
IdentitiesOnly yes
Et dans tes dépôts Git :
git remote set-url origin git@github.com-pro:monorg/monrepo.git
🧪 Tester que tout fonctionne (sans risque)
Pour tester la connexion SSH sans rien casser :
ssh -T git@github.com
Pour voir quelle clé est réellement utilisée (mode debug très utile) :
ssh -vT git@github.com
Cherche la ligne :
Offering public key: /home/user/.ssh/id_ed25519
Cela confirme la configuration.
🔒 Bonnes pratiques
- Donne les bonnes permissions :
bash chmod 600 ~/.ssh/id_* chmod 700 ~/.ssh - Ne mets jamais ta clé privée dans un dépôt (même privé).
- Utilise
ed25519plutôt quersasi possible.
Pour tester si ta connexion SSH vers ton dépôt GitHub fonctionne
✅ Tester la connexion SSH à GitHub
La commande officielle est :
ssh -T git@github.com
👉 Elle teste l’authentification SSH sans ouvrir de session interactive (-T = disable pseudo-tty).
🔍 Que se passe‑t‑il si tout fonctionne ?
Selon ta configuration, GitHub répondra par l’un de ces messages :
✔️ Si ta clé SSH est reconnue :
Hi <ton_username>! You've successfully authenticated, but GitHub does not provide shell access.
→ Parfait : tu es authentifié correctement.
❓ Si GitHub te demande de vérifier l’empreinte de la clé :
La première fois seulement :
The authenticity of host 'github.com (IP...)' can't be established...
Tape : yes.
❌ Si ça ne fonctionne pas
Pas de clé SSH :
Permission denied (publickey).
→ Tu dois générer une clé SSH et l’ajouter à GitHub.
📌 Résumé rapide
| Action | Commande |
|---|---|
| Tester SSH vers GitHub | ssh -T git@github.com
|
| Vérifier quelle clé est utilisée | ssh -vT git@github.com
|
| Lister tes clés SSH | ls ~/.ssh/
|