--- title: "SSH Keys Setup (MSSCODE & Sourcetree)" type: operation sources: - sources/archives/Configuration_cle_SSH_MSSCODE_Sourcetree.md related: - operations/git-workflow.md - operations/git-branch-lifecycle.md last_compiled: "2026-04-17" --- # SSH Keys Setup (MSSCODE & Sourcetree) ## Overview Procédure interne Mecalux EasyWMS France pour générer une **clé SSH ed25519**, l'enregistrer sur **MSSCODE** (le Gitea interne Mecalux) et la connecter à **Sourcetree**. Une fois en place, Sourcetree n'a plus à demander les identifiants MSSCODE à chaque opération Git - seul le mot de passe de la clé SSH est exigé à l'ouverture de Sourcetree. Source : Confluence EasyWMS France - *Configuration d'une clé SSH pour MSSCODE et Sourcetree* (v2, 28/01/2026). ## 1. Génération de la clé SSH ### Prérequis **Git installé** sur le poste, puis ouverture de **Git Bash** (pas PowerShell, pas CMD). ### Commande ```shell ssh-keygen -t ed25519 -C "your_email@example.com" ``` À l'invite **`Enter file in which to save the key`** : appuyer sur **Entrée** (chemin par défaut `/c/Users//.ssh/id_ed25519`). À l'invite **`Enter passphrase`** : saisir un **mot de passe fort** (recommandé), puis le confirmer. > ⚠️ Le mot de passe de la clé est **unique et non modifiable**. En cas d'oubli, il faut **régénérer une nouvelle paire de clés**. Une clé sans mot de passe est techniquement possible mais **fortement déconseillée**. Deux fichiers sont créés dans `C:\Users\\.ssh\` : - `id_ed25519` - clé **privée** (à ne jamais partager) - `id_ed25519.pub` - clé **publique** (à enregistrer sur MSSCODE) ## 2. Enregistrement de la clé sur MSSCODE 1. Se connecter à **MSSCODE** → accéder à la gestion des clés SSH 2. Cliquer sur **"Ajouter une clé"** 3. Donner un nom à la clé (ex : `Auth`) 4. Coller le contenu **complet** du fichier `id_ed25519.pub` 5. MSSCODE déclenche une **vérification de la clé via signature SSH renforcée** ### Vérification renforcée > ⚠️ **Ne pas copier l'exemple de commande** affiché dans la documentation Confluence : le **jeton de vérification est unique et change à chaque tentative**. Utiliser systématiquement la commande **fournie en direct par MSSCODE**, en y ajoutant le chemin vers la clé privée entre apostrophes simples. Forme générale : ```shell echo -n 'votre_jeton_unique' | ssh-keygen -Y sign -n gitea -f 'C:\Users\\.ssh\id_ed25519' ``` Saisir le mot de passe de la clé SSH → la commande imprime une **signature**. Copier celle-ci dans le champ **"Signature SSH renforcée"** de MSSCODE puis cliquer sur **"Vérifier"**. ## 3. Configuration de Sourcetree 1. Ouvrir **Sourcetree** → **Tools** → **Options** 2. Onglet **General** → section **SSH Client Configuration** : - **SSH Client** : sélectionner **`OpenSSH`** - **SSH Key** : cliquer sur **`[...]`** et désigner `id_ed25519` (clé **privée**) 3. Sourcetree demande le **mot de passe** de la clé → le saisir et valider ## 4. Cloner via SSH (obligatoire) > ⚠️ **Important** : avec une clé SSH, il faut cloner les dépôts via le **lien SSH** (et non HTTPS). Sinon Sourcetree continuera à demander les identifiants MSSCODE à chaque opération. Le lien SSH est exposé sur la page du dépôt MSSCODE (bouton "Code" / "Clone" → onglet **SSH**). ## Comportement attendu - Sourcetree n'**ouvre plus de prompt MSSCODE** pour clone / fetch / pull / push. - Le mot de passe **de la clé SSH** est demandé **une fois par session Sourcetree** (à l'ouverture). Sourcetree mémorise ensuite la passphrase pour la durée de vie du process. ## Common errors - **Sourcetree redemande encore le mot de passe MSSCODE** → le repo a été cloné en HTTPS. Re-cloner via le lien SSH (ou re-pointer le remote `origin` vers l'URL SSH). - **`Permission denied (publickey)`** → la clé publique n'a pas été enregistrée sur MSSCODE, ou la vérification renforcée n'a pas été validée. - **Vérification renforcée refuse la signature** → l'utilisateur a copié l'exemple de commande de la doc et non celle générée par MSSCODE (jeton expiré / ne correspond pas à la session). Recharger la page MSSCODE et utiliser la commande fournie. - **Mot de passe de la clé oublié** → régénérer une paire de clés et refaire la procédure (pas de récupération possible). ## Related - [Git Workflow (Git Flow)](git-workflow.md) - opérations Git quotidiennes effectuées avec cette clé - [Git Branch Lifecycle](git-branch-lifecycle.md) - cycle des branches Git par phase de projet