Source : How to Run Your Own Git Server
Si on n'en a pas encore une, créer une paire de clés avec cette commande :
ssh-keygen -t rsa -b 2048 -C "mon-adresse@email"
Deux fichiers sont créés :
/home/marc/.ssh/id_rsa # clé privée /home/marc/.ssh/id_rsa.pub # clé publique
ssh-copy-id marc@SERVEUR
Entrer le mot de passe de cet utilisateur sur le serveur.
ssh marc@SERVEUR
Normalement l'accès est maintenant autorisé sans entrer de mot de passe.
Source: https://support.atlassian.com/bitbucket-cloud/docs/set-up-an-ssh-key/
Sous Windows je n'ai pas pris la peine de générer une clé SSH, je me contente de taper le mot de passe à chaque push ou pull.
Dans Git GUI j'ajoute une remote que je nomme cramnurbel et dont
l'emplacement est par exemple ssh://git@cramnurbel.net/home/git/projet1.git
…à suivre…
Sur le serveur :
Créer un utilisateur git et lui attribuer un mot de passe :
sudo adduser git
Sur la machine locale :
Tester la connexion SSH de l'utilisateur git (le mot de passe sera demandé) :
ssh git@SERVEUR
Envoyer la clé RSA sur le serveur dans le compte de l'utilisateur git :
cat ~/.ssh/id_rsa.pub | ssh git@SERVEUR "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Se connecter à nouveau en SSH avec l'utilisateur git (le mot de passe ne sera plus demandé) :
ssh git@SERVEUR
Sur le serveur en tant qu'utilisateur GIT :
Créer un dossier pour un projet :
mkdir -p /home/git/test1.git cd /home/git/test1.git
Initialiser un dépôt vide dans ce dossier :
git init --bare
Sur la machine locale :
Créer le dossier du projet s'il n'existe pas encore, et initialiser le dépôt :
mkdir -p /home/marc/progs/test1 cd /home/marc/progs/test1
git init
git add . git commit -m "Initial commit"
Ajouter le dépôt distant :
git remote add origin ssh://git@SERVEUR/home/git/test1.git
Faire un push vers le dépôt distant :
git push origin master
Ensuite pour récupérer le projet sur une autre machine, utiliser git clone :
git clone git@SERVEUR:/home/git/test1.git