Aller au contenu

GitHub SSH

De Marmits Wiki

🛠️ 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 ed25519 plutôt que rsa si 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/