J'utilise git bash. Je dois utiliser
eval `ssh-agent.exe`
ssh-add /my/ssh/location/
à chaque fois que je commence un nouveau git bash.
Existe-t-il un moyen de définir l'agent ssh de manière permanente? Ou Windows a-t-il un bon moyen de gérer les clés ssh?
Je suis un nouveau gars, donnez-moi s'il vous plaît un tutoriel détaillé, merci!
/my/ssh/location/
equalivent à quelque chose comme/c/Users/Foobar/.ssh/
?Réponses:
Lors d' une session bash git, vous pouvez ajouter un script
~/.profile
ou~/.bashrc
( avec~
étant généralement fixé à%USERPROFILE%
), pour ladite session pour lancer automatiquement lassh-agent
. Si le fichier n'existe pas, créez-le simplement.C'est ce que décrit GitHub dans « Utilisation des phrases de passe de clé SSH ».
La section « Auto-launching ssh-agent on Git for Windows » de cet article contient un script robuste qui vérifie si l'agent est en cours d'exécution ou non. Vous trouverez ci-dessous juste un extrait, consultez l'article GitHub pour la solution complète.
Autres ressources:
« Faire fonctionner ssh-agent avec git run à partir du shell de commande Windows » a un script similaire, mais je me référerais principalement à l'article GitHub ci-dessus, qui est plus robuste et à jour.
la source
PS: Ces instructions sont dans le contexte d'un shell Bash ouvert dans le sous-système Linux de Windows 10 et ne mentionnent pas la liaison symbolique des clés SSH générées sous Windows avec Bash sur Ubuntu sous Windows
1) Mettez à jour votre .bashrc en y ajoutant les éléments suivants
2) Exécutez ensuite
$ source ~/.bashrc
pour recharger votre configuration.Les étapes ci-dessus ont été prises à partir de https://github.com/abergs/ubuntuonwindows#2-start-an-bash-ssh-agent-on-launch
3) Créez un fichier de configuration SSH, s'il n'est pas présent. Utilisez la commande suivante pour en créer un nouveau:
.ssh$ touch config
4) Ajouter ce qui suit à
~/.ssh/config
5) Ajoutez votre clé à l'agent SSH à l'aide de la commande
$ ssh-add ~/.ssh/id_work_gmail
et vous devriez pouvoir vous connecter à votre compte github ou à votre hôte distant en utilisant ssh. Par exemple, dans le contexte des exemples de code ci-dessus:ou
Cet ajout de clé à l'agent SSH ne doit être effectué qu'une seule fois.
6) Déconnectez-vous maintenant de votre session Bash sur le sous-système Windows Linux, c'est-à-dire quittez à nouveau toutes les consoles Bash et redémarrez une nouvelle console et essayez de SSH sur votre hôte Github ou un autre hôte comme configuré dans le fichier de configuration SSH et cela devrait fonctionner sans avoir besoin de plus pas.
Remarque:
Si vous faites face,
Bad owner or permissions on ~/.ssh/config
mettez à jour les autorisations à l'aide de la commandechmod 600 ~/.ssh/config
. Référence: https://serverfault.com/a/253314/98910Pour que les étapes ci-dessus fonctionnent, vous aurez besoin d' OpenSSH v 7.2 et plus récent . Si vous en avez un plus ancien, vous pouvez le mettre à niveau en suivant les étapes mentionnées sur https://stackoverflow.com/a/41555393/936494
Les mêmes détails peuvent être trouvés dans l'essentiel des problèmes d'agent SSH du sous-système Linux Windows 10
Merci.
la source
>> "${SSH_ENV}"
? Ne devrait-il pas être juste> "${SSH_ENV}"
? Le vôtre fonctionne, bien sûr, mais il se termine par un~/.ssh/environment
fichier lentement de plus en plus long , pour (comme je le pense actuellement !?) aucune raison ... Merci beaucoup! Je pense que ce script devrait simplement être inclus dans la valeur.bashrc
par défaut pour WSL Ubuntu, c'est tellement utile!J'ai trouvé que le moyen le plus simple d'y parvenir était d'utiliser Pageant comme agent SSH et plink.
Vous devez avoir une session putty configurée pour le nom d'hôte utilisé dans votre télécommande.
Vous aurez également besoin de plink.exe qui peut être téléchargé à partir du même site que putty.
Et vous avez besoin de Pageant en cours d'exécution avec votre clé chargée. J'ai un raccourci vers pageant dans mon dossier de démarrage qui charge ma clé SSH lorsque je me connecte.
Lorsque vous installez git-scm, vous pouvez alors le spécifier pour utiliser tortoise / plink plutôt qu'OpenSSH.
L'effet net est que vous pouvez ouvrir git-bash quand vous le souhaitez et pousser / tirer sans être contesté pour les phrases de passe.
Il en va de même pour les sessions putty et WinSCP lorsque pageant a votre clé chargée. Cela rend la vie beaucoup plus facile (et sécurisée).
la source
Comme je n'aime pas utiliser putty dans Windows comme solution de contournement, j'ai créé un utilitaire très simple ssh-agent-wrapper . Il analyse vos dossiers .ssh et ajoute toutes vos clés à l'agent. Vous devez simplement le mettre dans le dossier de démarrage de Windows pour qu'il fonctionne.
Hypothèses :
la source
Je ne pouvais pas faire fonctionner cela sur la base de la meilleure réponse, probablement parce que je suis un tel PC et que je manque quelque chose d'évident. Mais juste pour votre information, au cas où cela aiderait quelqu'un d'aussi difficile que moi, ce qui a ENFIN fonctionné, c'est via l'un des liens ici (référencés dans les réponses). Cela impliquait simplement de coller ce qui suit dans mon
.bash_profile
:J'ai probablement quelque chose de bizarre configuré, mais je n'ai pas réussi lorsque je l'ai ajouté à mon fichier
.profile
ou.bashrc
. L'autre vrai défi que j'ai rencontré est que je ne suis pas administrateur sur cet ordinateur et que je ne peux pas modifier les variables d'environnement sans l'avoir approuvée par le service informatique, c'est donc une solution pour ceux qui ne peuvent pas y accéder.Vous savez que cela fonctionne si vous êtes invité à entrer votre mot de passe ssh lorsque vous ouvrez git bash. Hallelujah quelque chose a finalement fonctionné.
la source
Mettez ceci dans votre ~ / .bashrc (ou dans un fichier qui en est la source), ce qui l'empêchera d'être exécuté plusieurs fois inutilement par shell:
Et puis ajoutez "AddKeysToAgent yes" à ~ / .ssh / config:
ssh sur votre serveur (ou git pull) normalement et on ne vous demandera le mot de passe / la phrase secrète qu'une fois par session.
la source
Créez un nouveau fichier .bashrc dans votre répertoire ~.
Là, vous pouvez mettre vos commandes que vous souhaitez exécuter à chaque fois que vous démarrez le bash
la source
.bashrc
fichier (commeecho test
et vérifiez s'il est chargé lorsque vous exécutez Git Bash..bashrc
dans votre dossier utilisateur par exempleC:\Users\john
.Solution simple à deux chaînes de cette réponse :
Pour sh , bash , etc:
Pour csh , tcsh , etc.:
la source