Cet article est une traduction (assez libre et agrémentée) de SSH Agent on Cygwin via kill the radio. Une autre resource pas mal sur le même sujet est disponible sur : Problem with ssh-add / ssh-agent under cygwin.
Il existe sûrement des dizaines de tutoriels sur l’art et la manière de démarrer un SSH Agent sur Cygwin, mais voilà qui peut toujours service !
Si jamais l’erreur suivante apparaît lorsque vous utiliser la commande ssh-add
:
Could not open a connection to your authentication agent.
Cela signifie que vous n’avez pas de gestionnaire de clés SSH de démarré. Visiblement, il ne sert à rien de lancer le Pageant de Putty, il va donc falloir gérer tout ça directement dans Cygwin.
Pour commencer, si jamais, vous n’avez pas encore de fichier ~/.bash_profile, ou ~/.bashrc (un fichier de configuration executé à chaque démarrage de Cygwin. Quelques exemples : Comment configurer le HOME de Cygwin et plus.), voilà ce qu’il vous faut faire : créer un fichier « .bash_profile » et en modifier les droits d’accès.
touch ~/.bash_profile chmod a+x ~/.bash_profile
Maintenant, pour démarrer le gestionnaire de clés SSH, il faut ajouter les lignes suivantes quelques part dans ce nouveau fichier :
SSHAGENT=/usr/bin/ssh-agent SSHAGENTARGS="-s" if [ -z '$SSH_AUTH_SOCK' -a -x'$SSHAGENT' ]; then eval `$SSHAGENT $SSHAGENTARGS` trap 'kill $SSH_AGENT_PID' 0 fi
Cela va démarrer « ssh-agent » pour tous les shell de Cygwin que vous démarrerez à l’avenir (donc fermer vos shell déjà ouverts et redémarrez-les ;-)).
Il est désormais possible d’utiliser la commande suivante tranquillement :
ssh-add ~/.ssh/id_rsa [enter your passphrase]
Voila! (ndlt : ce mot n’est pas traduit, veuillez m’en excuser ;-)) Plus besoin de taper votre mot de passe à chaque fois que vous utilisez SSH ! Par contre, il vous faudra ajouter votre clé SSH avec « ssh-add » à chaque fois que vous ré-ouvrirez un nouveau shell, ce qui est plutôt rassurant pour la sécurité (ndlt : et puis ça continue en parlant des gens qui peuvent s’assoir devant votre ordinateur, blabla, mais personnellement, ça me fatigue rien que d’y penser…).
Ce qui permet maintenant d’effectuer des git pull
, git push
, bref du git à distance lorsque la sécurité est géré apr des clés SSH publiques.