Github pusher sans mot de passe

Lorsque que vous êtes sous windows et que vous travaillez avec Github, au début c’est génial car cela vous permet de faire un grand bon en avant, le versionning rien de mieux pour faire des amélioration de votre logiciel de façon incrémental sans avoir à gérer les différentes version en renommand les nom de fichier avec les dates.

Seulement au bout d’un moment vous devez taper sans cesse votre login et mot de passe à chaque fois que vous voulez pusher ou puller vos modification

Contenu

Les clés SSH à la rescousse !

Il est possible de se passer de taper le login et mot de passe à chaque fois que vous devez pusher ou puller.

Il faut simplement utiliser les clé SSH publiques et privées.

Si vous êtes sous Windows, vous utilisez sans doute Git Bash pour commiter vos modifications, c’est dans ce même git bash que vous allez générer vos clé publique et privée.

Tapez la commande :

ssh-keygen -t rsa -C "your_email@example.com"

(Sous Linux idem)

Quand vous aurez le message : Enter passphrase (empty for no passphrase):

entrez un mot de passe (ne l’oubliez pas vous en aurez besoin).

Vos clés sont générées et sauvée dans le répertoire .ssh, sous Windows allez dans le répertoire utilisateur pour le trouver.

Informer Github de votre clé RSA

Maintenant il faut copier le contenu de votre clé publique dans Github.com

  1. Allez dans Github.com Settings
  2. Barre à gauche cliquez sur SSH Keys
  3. Donnez une titre et collez le texte de votre clé publique et cliquez sur Add KEy

Voilà c’est tout !

Dernière astuce pour les plus paresseux :

Maintenant quand vous allez commiter il ne vous sera plus demandé l’identifiant et le mot de passe mais par contre vous aurez à rentrer la passphrase. Pour ne pas à avoir à entrer cette passphrase à chaque fois que vous commitez, vous allez devoir utiliser le ssh agent pour stocker l’information.

eval `ssh-agent`

ssh-add

vous aurez à entre de nouveau le passphrase. Mais vous n’aurez à entrer qu’une fois seulement  la passphrase à chaque nouvelle session de git bash.

Pour aller encore plus loin :

Pour n’avoir plus à entrer de passphrase du tout il vous faudra écrire un script shell qui se lance automatiquement à chaque démarrage de git bash.

le -s va le mettre en tâche de fond.

Pourquoi cela ne marche toujours pas?

En fait il faut changer de représentation d’url, ce post vous en dit plus sur les url chez Github.

Autre méthode pour ne pas avoir à retaper le mot de passe à chaque fois

Voici la commande pour ne pas avoir à retaper le mot de passe :

git config --global credential.helper store

La prochaine fois que vous allez faire un git pull, vous allez entrer votre identifiant et mot de passe. Mais les fois suivantes, vous n’aurez plus besoin de le faire.

Astuce si vous voulez que cette mémorisation ne dure qu’un certain temps, le timout est en secondes.

git config credential.helper cache <timeout>
Retour en haut