Mémo Git · Synchroniser
Configurer une clé SSH
ssh-keygen -t ed25519
Une clé SSH permet de faire fetch et push sans token, sur les dépôts dont le remote est en SSH (git@hôte:…). ssh-keygen -t ed25519 crée la paire de clés : la clé privée reste sur ta machine, et seule la clé publique (.pub) est enregistrée sur GitHub ou GitLab.
Ce que ça fait
Une clé SSH remplace le token pour les dépôts dont le remote est en SSH (git@hôte:…). La clé privée reste sur ta machine ; seule la clé publique est enregistrée sur GitHub ou GitLab. À la première connexion, l'empreinte du serveur est vérifiée puis mémorisée dans ~/.ssh/known_hosts.
Un cas d'usage
Tes dépôts sont clonés en git@github.com:… et tu veux que fetch et push fonctionnent aussi en ligne de commande, sans saisir de token.
Attention : Sans passphrase, quiconque copie le fichier de la clé privée accède à tes dépôts. Avec une passphrase, ajoute la clé à ton agent SSH (ssh-add) : Merathon ne la demande pas lors des fetch et push.
En ligne de commande
ssh-keygen -t ed25519 -C "moi@exemple.fr"- Crée la paire de clés, par défaut dans
~/.ssh/id_ed25519. ssh-add ~/.ssh/id_ed25519- Ajoute la clé à l'agent SSH, pour ne saisir la passphrase qu'une fois.
gh ssh-key add ~/.ssh/id_ed25519.pub --title "Mon poste"- GitHub CLI : enregistre la clé publique sur le compte.
ssh -T git@github.com- Teste la connexion, et indique le compte reconnu.
git remote set-url origin git@github.com:moi/projet.git- Fait passer un dépôt existant de HTTPS à SSH.
Dans Merathon
- Onglet « Comptes » : clic droit sur le compte → « Configurer SSH… ».
- Choisis une clé existante, ou crée ~/.ssh/id_ed25519 s'il n'existe pas. Une clé existante n'est jamais écrasée.
- Valide : la clé est enregistrée sur le compte, puis la connexion est testée.
- Si le token n'a pas le droit d'ajouter des clés (GitHub : scope write:public_key), copie la clé publique et ajoute-la sur la page proposée.
Questions fréquentes
Que faire devant « Permission denied (publickey) » ?
La clé présentée n'est pas enregistrée sur le compte, ou aucune clé n'est chargée. ssh -T git@github.com teste la connexion, ssh-add -l liste les clés de l'agent, et ssh -vT git@github.com montre les clés essayées.
Quelle clé partager ?
Uniquement le fichier .pub. Le fichier sans extension est la clé privée : il ne doit jamais quitter ta machine.
Faut-il une passphrase ?
C'est préférable : sans elle, quiconque copie le fichier de la clé privée accède à tes dépôts. Avec une passphrase, ajoute la clé à ton agent SSH avec ssh-add.
Mes dépôts en HTTPS passent-ils en SSH tout seuls ?
Non. Le remote de chaque dépôt reste tel quel, jusqu'à un git remote set-url. Merathon ne le modifie pas non plus : ces dépôts continuent d'utiliser le token.