« 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. | ||
----- | ----- | ||