193 votes

Exécution de l'agent SSH lors du lancement de Git Bash sous Windows

J'utilise git bash. Je dois utiliser

eval `ssh-agent.exe`
ssh-add /my/ssh/location/

à chaque fois que je démarre un nouveau git bash.

Existe-t-il un moyen de définir l'agent ssh de manière permanente ? Ou est-ce que Windows a un bon moyen pour gérer les clés ssh ?

Je suis un nouveau venu, veuillez me donner un tutoriel détaillé, merci !

4voto

mza Points 81

Mettez ceci dans votre ~/.bashrc (ou un fichier qui en est issu), ce qui empêchera qu'il soit exécuté plusieurs fois inutilement par shell :

if [ -z "$SSH_AGENT_PID" ]; then
        eval `ssh-agent -s`
fi

Puis ajoutez "AddKeysToAgent yes" à ~/.ssh/config :

Host *
    AddKeysToAgent yes

Connectez-vous normalement à votre serveur (ou à git pull). Le mot de passe et la phrase de passe ne vous seront demandés qu'une fois par session.

2voto

Erez A. Korn Points 1193

Comme je n'aime pas utiliser putty dans Windows comme solution de rechange, j'ai créé un utilitaire très simple ssh-agent-wrapper . Il scanne vos dossiers .ssh et ajoute toutes vos clés à l'agent. Vous devez simplement le placer dans le dossier de démarrage de Windows pour qu'il fonctionne.

Hypothèses :

  • ssh-agent dans le chemin
  • shh-add dans le chemin (à la fois en choisissant l'option "RED" lors de l'installation de git
  • les clés privées sont dans le dossier %USERPROFILE%/.ssh
  • les noms des clés privées commencent par id (par exemple id_rsa)

1voto

anmolshukla Points 46

J'ai écrit un script et créé un dépôt git, qui résout ce problème ici : https://github.com/Cazaimi/boot-github-shell-win .

Le fichier readme contient des instructions sur la façon de configurer le script, de sorte que chaque fois que vous ouvrez une nouvelle fenêtre/un nouvel onglet, la clé privée est ajoutée à ssh-agent automatiquement, et vous n'avez pas à vous en soucier, si vous travaillez avec des dépôts git distants.

0voto

user2711262 Points 1

Créer un nouveau .bashrc dans votre répertoire ~.

Vous pouvez y placer les commandes que vous souhaitez voir exécutées à chaque fois que vous lancez l'application bash.

0voto

oklas Points 3235

Solution simple à deux cordes de cette réponse :

Pour sh , bash etc :

# ~/.profile
if ! pgrep -q -U `whoami` -x 'ssh-agent'; then ssh-agent -s > ~/.ssh-agent.sh; fi
. ~/.ssh-agent.sh

Pour csh , tcsh etc :

# ~/.schrc
sh -c 'if ! pgrep -q -U `whoami` -x 'ssh-agent'; then ssh-agent -c > ~/.ssh-agent.tcsh; fi'
eval `cat ~/.ssh-agent.tcsh`

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X