« GitHub SSH » : différence entre les versions

Page créée avec « Pour tester si '''ta connexion SSH vers ton dépôt GitHub fonctionne''' ----- = ✅ Tester la connexion SSH à GitHub = La commande officielle est : <syntaxhighlight lang="bash">ssh -T git@github.com</syntaxhighlight> 👉 Elle teste '''l’authentification SSH''' sans ouvrir de session interactive (<code>-T</code> = disable pseudo-tty). ----- = 🔍 Que se passe‑t‑il si tout fonctionne ? = Selon ta configuration, GitHub répondra par l’un de ces me... »
 
Aucun résumé des modifications
 
Ligne 1 : Ligne 1 :
= 🛠️ Objectif Configuration <code>~/.ssh/config</code> =
→ '''Simplifier l’utilisation de SSH'''<br />
→ '''Choisir automatiquement la bonne clé'''<br />
→ '''Configurer GitHub proprement'''<br />
→ '''Éviter les erreurs “Permission denied (publickey)”'''
-----
== ✅ Exemple de configuration <code>~/.ssh/config</code> propre ==
Crée ou modifie ce fichier :
<pre>~/.ssh/config</pre>
Et mets-y ceci :
<pre class="sshconfig"># ===============================
#  Configuration SSH GitHub
# ===============================
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes</pre>
=== Explication ===
{| class="wikitable"
|-
! Directive
! Rôle
|-
| <code>Host github.com</code>
| S’applique uniquement aux connexions vers GitHub
|-
| <code>HostName github.com</code>
| Le vrai nom du serveur
|-
| <code>User git</code>
| Nom d’utilisateur utilisé par Git pour les connexions SSH
|-
| <code>IdentityFile ~/.ssh/id_ed25519</code>
| Ta clé privée utilisée pour GitHub
|-
| <code>IdentitiesOnly yes</code>
| 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 :
<pre class="sshconfig"># 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</pre>
Et dans tes dépôts Git :
<syntaxhighlight lang="bash">git remote set-url origin git@github.com-pro:monorg/monrepo.git</syntaxhighlight>
-----
== 🧪 Tester que tout fonctionne (sans risque) ==
Pour tester la connexion SSH ''sans rien casser'' :
<syntaxhighlight lang="bash">ssh -T git@github.com</syntaxhighlight>
Pour voir quelle clé est réellement utilisée (mode debug très utile) :
<syntaxhighlight lang="bash">ssh -vT git@github.com</syntaxhighlight>
Cherche la ligne :
<pre>Offering public key: /home/user/.ssh/id_ed25519</pre>
Cela confirme la configuration.
-----
== 🔒 Bonnes pratiques ==
* Donne les bonnes permissions : <code>bash    chmod 600 ~/.ssh/id_*    chmod 700 ~/.ssh</code>
* Ne mets jamais ta clé privée dans un dépôt (même privé).
* Utilise <code>ed25519</code> plutôt que <code>rsa</code> si possible.
-----
Pour tester si '''ta connexion SSH vers ton dépôt GitHub fonctionne'''
Pour tester si '''ta connexion SSH vers ton dépôt GitHub fonctionne'''
-----
-----
Ligne 8 : Ligne 104 :
<syntaxhighlight lang="bash">ssh -T git@github.com</syntaxhighlight>
<syntaxhighlight lang="bash">ssh -T git@github.com</syntaxhighlight>
👉 Elle teste '''l’authentification SSH''' sans ouvrir de session interactive (<code>-T</code> = disable pseudo-tty).
👉 Elle teste '''l’authentification SSH''' sans ouvrir de session interactive (<code>-T</code> = disable pseudo-tty).


-----
-----


= 🔍 Que se passe‑t‑il si tout fonctionne ? =
== 🔍 Que se passe‑t‑il si tout fonctionne ? ==


Selon ta configuration, GitHub répondra par l’un de ces messages :
Selon ta configuration, GitHub répondra par l’un de ces messages :
Ligne 27 : Ligne 122 :
<pre>The authenticity of host 'github.com (IP...)' can't be established...</pre>
<pre>The authenticity of host 'github.com (IP...)' can't be established...</pre>
Tape : <code>yes</code>.
Tape : <code>yes</code>.


-----
-----


= ❌ Si ça ne fonctionne pas =
== ❌ Si ça ne fonctionne pas ==


=== Pas de clé SSH : ===
=== Pas de clé SSH : ===
Ligne 37 : Ligne 131 :
<pre>Permission denied (publickey).</pre>
<pre>Permission denied (publickey).</pre>
→ Tu dois générer une clé SSH et l’ajouter à GitHub.
→ Tu dois générer une clé SSH et l’ajouter à GitHub.


-----
-----