Puis-je utiliser PLink et Pageant avec syg de Cygwin?

26

J'utilise maintenant msysgit à cause des outils GUI, qui utilisent les utilitaires Putty's Pageant et PLink, mais j'utilise Cygwin comme terminal SSH général. J'utilisais ssh-agent sur Cygwin, mais cela signifie que je dois saisir mes phrases de passe de clé SSH pour les deux gestionnaires de clés SSH. Est-il possible de configurer tous mes outils de port Unix (msys, git, cygwin, Ruby Net: SSH, etc.) pour utiliser PLink / Pageant au lieu de ssh-agent? Il semble que c'est le genre de chose pour laquelle PLink a été conçu, mais je ne trouve pas de documentation sur la façon de le faire.

Jerph
la source

Réponses:

17

J'ai également écrit un proxy entre openssh et pageant, que j'appelle ssh-pageant . Cela ressemble à peu près à la même approche que la charade, mais je n'en avais pas entendu parler. Au cas où vous auriez des problèmes, je pensais que je jetterais ssh-pageant pour essayer à la place.

Josh Stone
la source
11

Je suis tombé sur la charade il y a quelque temps, qui remplace ssh-agent et les procurations de Pageant. À l'époque, je ne pouvais pas vraiment le faire fonctionner, et je n'ai pas eu la chance de jouer avec depuis, mais cela pourrait valoir la peine d'essayer. Si vous avez de la chance, veuillez poster et me le faire savoir, cela fait partie de ma liste de choses à faire depuis des lustres!

Jon M
la source
Je peux confirmer que cela fonctionne. (Tout comme @Nightfly ci-dessous)
Christopher Galpin
2
J'ajouterai que avant de construire la marque de package vous que vous disposez de packages suivants en plus par défaut Cygwin installation: make, gcc-core, keychain, psmiscet, bien sûr openssh. De cette façon, si vous suivez des instructions très détaillées du fichier README, vous n'obtiendrez aucune erreur
Alexander Pogrebnyak
5

Vous cherchez à intégrer ssh-agent et pageant afin de n'avoir qu'un seul fichier de clés. Pour cela, vous pouvez utiliser PuTTY comme terminal, conserver vos clés dans le concours, activer le transfert d'agent, exécuter Cygwin sshd et ssh vers localhost. Cela vous donnera un environnement où les clés sont servies par pageant sur la connexion ssh avec PuTTY - pas besoin d'exécuter ssh-agent.

Il devrait être possible de faire de même avec Plink. Utilisez simplement l'option -A et utilisez le paramètre SSH_AUTH_SOCK résultant dans vos sessions Cygwin interactives. Avertissement: je n'ai pas essayé cela.

Edit: j'ai maintenant essayé ceci; cela fonctionne très bien. J'ai créé un raccourci vers PLINK:

"C:\path\to\PLINK.EXE" -A -ssh -l yournamehere localhost "echo $SSH_AUTH_SOCK; while :; do sleep 86400; done"

Ensuite, dans un terminal Cygwin (j'utilise bien sûr PuTTYcyg):

export SSH_AUTH_SOCK=/tmp/ssh-crYQh24AMq/agent.3964
ssh-add -l

Semble fonctionner très bien, mais nécessite toujours un sshd local.

Ce qui serait vraiment génial, c'est d'avoir un agent compatible avec openssh qui communique directement avec le magasin de clés du concours, mais cela ne se produira que si quelqu'un écrit une telle bête. Je l'ai étudié il y a de nombreuses lunes, et cela semblait plus problématique que cela ne valait étant donné que cette solution de contournement est assez facile.


la source
mmm, ce n'est pas une mauvaise idée du tout. C'est probablement comme ça que j'irai. Merci! Et en ce qui concerne votre agent compatible avec openssh, oui, c'est exactement ce que j'espérais que plink pourrait fournir. Il semble que ce serait un morceau de code de grande valeur, car beaucoup de travail est nécessaire pour rendre les logiciels (comme git) compatibles avec openssh et plink. Pourquoi ne pas simplement avoir une couche de traduction? On dirait "la manière Unix" de le faire. :)
Jerph
2

Pourriez-vous aller dans l'autre sens et utiliser puttycyg?

[ http://code.google.com/p/puttycyg/]

De cette façon, vous avez du mastic comme terminal cygwin.

Davey
la source
Je ne sais pas quelles seraient les conséquences de l'utilisation de mastic pour mes scripts Cygwin. Je ne sais pas vraiment où puttycyg s'insère, je suppose. Je vais m'en occuper - merci!
Jerph
0

je suggérerais la même chose (utilisez du mastic) mais utilisez simplement du mastic car il s'intègre mieux avec pagent et plink, je l'utilise avec msysgit mais j'utilise le git bash fourni par msysgit et ça irait, sa commutation un peu fastidieuse entre les consoles mais la séparation peut aussi être bonne

seanl
la source
Je ne peux malheureusement pas quitter Cygwin. Je dépend de certains des packages qu'il fournit, pas seulement de la console ssh pure. Msys a ses points forts ("meilleure" intégration avec de nombreux outils Windows et la version Windows de Ruby, par exemple) mais il serait très difficile de migrer mes scripts basés sur Cygwin avec les outils disponibles sur Msys.
Jerph
0

Une autre façon de le faire.

Ajoutez cette ligne tout en haut de .bash_profile

exec ssh-agent /usr/bin/bash

Ajoutez ensuite vos clés au bas de .bashrc

ssh-add ~/.ssh/myprivate
ken
la source
Comment ce lien avec Pageant? La question était de savoir comment ne pas utiliser ssh-agenten plus de cela.
Tobias Kienzler