Bloc note de commandes concernant Git. Parce que concrètement, j'y vais un peu pif. Faudrait que je lise la doc, un jour.
Ressources :
Tout est volé ici : https://www.it-connect.fr/comment-generer-une-paire-de-cles-ssh-et-lutiliser-avec-gitlab/
J'utilise le GitLab de Tedomum avec une authentification SSH. L'authentification par token HTTPS est aussi disponible mais je n'ai vu ça qu'après. OpenSSH est intégré sous Windows 10 et 11.
Générer une clef :
ssh-keygen -t ed25519 Enter file in which to save the key (C:\Users\utilisateur/.ssh/id_ed25519): C:\Users\utilisateur\.ssh\gittedo Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in C:\Users\utilisateur\.ssh\gittedo Your public key has been saved in C:\Users\utilisateur\.ssh\gittedo.pub The key fingerprint is: SHA256: The key's randomart image is: +--[ED25519 256]--+ | ..E .o++. o .| | . .. . oo+= o B | | . . o+.B *.=| | o +.B + =o| | S B . . .| | + + = . . | | + + . o | | . . o o | | . . | +----[SHA256]-----+
On met la clef dans le presse papier :
cat C:\Users\utilisateur\.ssh\gittedo.pub | clip
Ajouter la clef privée :
ssh-add C:\Users\utilisateur\.ssh\gittedo
Si d'aventure ssh-add
ne fonctionne pas, vérifier si le service est bien lancé soit par services.msc
soit avec les commandes suivantes (voir ce fil sur Stackoverflow). Par défaut le service n'est pas lancé :
# Active le service Get-Service ssh-agent | Set-Service -StartupType Automatic # Démarre le service Start-Service ssh-agent # Vérifie que le service est lancé Get-Service ssh-agent
Sur GitLab, aller dans Preferences > SSH Keys > Add new key et coller la clef dans le champ Key
.
Tenter la connexion :
ssh -T git@forge.tedomum.net Welcome to GitLab, @yahiko!
Pour que cela fonctionne avec git, il faut aussi indiquer à git la clef privée :
git config --global core.sshCommand "ssh -i C:/users/utilisateur/.ssh/gittedo"
git config --global user.name "Username" git config --global user.email mail@domaine.tld cd dossier_du_projet git init git remote add origin git@forge.tedomum.net:utilisateur/projet.git
On vérifie
git remote -v
On change la branche
git branch -M main
cd dossier_du_projet git add [dossier ou fichier] git commit -m "Commentaire" git push
Pour le premier envoi j'ai fait :
git add . git commit -m "Version initiale" git push --set-upstream origin main
Lors du premier envoi :
git push --set-upstream git@forge.tedomum.net:utilisateur/projet.git main
Si problème lors du push :
git pull --rebase origin main git push --set-upstream origin main
Pour récupérer le projet sur un autre machine
mkdir dossier && cd dossier git init git pull git@forge.tedomum.net:utilisateur/projet.git