¿Puedo usar PLink y Pageant con ssh de Cygwin?

26

Ahora estoy usando msysgit debido a las herramientas de GUI, que usan las utilidades de Putty's Pageant y PLink, pero uso Cygwin como un terminal SSH general. Había estado usando ssh-agent en Cygwin, pero eso significa que tengo que ingresar mis frases de contraseña SSH para ambos administradores de claves SSH. ¿Es posible configurar todas mis herramientas de puerto Unix (msys, git, cygwin, Ruby Net: SSH, etc.) para usar PLink / Pageant en lugar de ssh-agent? Parece que ese es el tipo de material para el que se creó PLink, pero no puedo encontrar documentación sobre cómo hacerlo.

Jerph
fuente
3
cinco años después: "PuttyAgent ahora es compatible con openssh / cygwin / msys"
Tobias Kienzler

Respuestas:

17

También escribí un proxy entre openssh y pageant, al que llamo ssh-pageant . Parece más o menos el mismo enfoque que la farsa, pero no había oído hablar de eso. Bueno, en caso de que tenga problemas, pensé en tirar ssh-pageant para intentar en su lugar.

Josh Stone
fuente
11

Me encontré con charada una un tiempo, que reemplaza ssh-agent y proxies a Pageant. En ese momento no pude hacerlo funcionar, y no he tenido la oportunidad de jugar con él desde entonces, pero podría valer la pena intentarlo. Si tiene suerte, por favor regrese y avíseme, ¡ha estado en mi lista de cosas para hacer por siglos!

Jon M
fuente
Puedo confirmar que funciona. (Como puede @Nightfly a continuación)
Christopher Galpin
2
Sólo añadiría que antes de construir el paquete Asegúrese de que usted tiene siguientes paquetes, además de la instalación por defecto cygwin: make, gcc-core, keychain, psmisc, y, por supuesto openssh. De esta manera, si sigue instrucciones muy detalladas del archivo README, no obtendrá ningún error
Alexander Pogrebnyak,
5

Está buscando integrar ssh-agent y el concurso para tener un solo almacén de claves. Una forma de hacerlo es usar PuTTY como terminal, mantener las claves en el concurso, habilitar el reenvío de agentes, ejecutar Cygwin sshd y ssh en localhost. Esto le dará un entorno donde las claves son atendidas por concurso a través de la conexión ssh con PuTTY, no es necesario ejecutar ssh-agent

Debería ser posible hacer lo mismo con Plink. Simplemente use la opción -A, y use la configuración SSH_AUTH_SOCK resultante en sus sesiones interactivas de Cygwin. Descargo de responsabilidad: no he intentado esto.

Editar: ahora he intentado esto; Funciona bien. Creé un atajo para PLINK:

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

Luego, en un terminal Cygwin (uso PuTTYcyg, por supuesto):

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

Parece funcionar muy bien, pero aún requiere un sshd local.

Lo que sería realmente genial es tener un agente compatible con openssh que se comunique directamente con el almacén de claves del concurso, pero esto no sucederá a menos que alguien escriba tal bestia. Lo examiné hace muchas lunas, y parecía más problemático de lo que valía la pena dado que esta solución es bastante fácil.


fuente
mmm, esta no es una mala idea en absoluto. Probablemente sea como voy a ir. ¡Gracias! Y con respecto a su agente compatible con openssh, sí, eso es exactamente lo que esperaba que Plink pudiera proporcionar. Parece que sería una pieza de código de bastante alto valor, ya que se necesita mucho trabajo para hacer que el software (como git) sea compatible con openssh y plink. ¿Por qué no solo tener una capa de traducción? Parece "la forma de Unix" para hacerlo. :)
Jerph
2

¿Podrías ir para otro lado y usar puttycyg?

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

De esa manera tienes masilla como tu terminal cygwin.

davey
fuente
No estoy seguro de cuáles serían las consecuencias del uso de masilla para mis scripts de Cygwin. Supongo que no tengo muy claro dónde se inserta puttycyg. Lo investigaré, ¡gracias!
Jerph
0

Sugeriría lo mismo (use masilla) pero solo use masilla ya que se integra mejor con pagent y plink, lo uso junto con msysgit pero uso el git bash proporcionado por msysgit y estaría bien, es un cambio un poco tedioso entre consolas pero la separación también puede ser buena

Seanl
fuente
No puedo dejar a Cygwin, desafortunadamente. Depende de algunos de los paquetes que proporciona, no solo de la consola SSH pura. Msys tiene sus puntos fuertes ("mejor" integración con muchas herramientas de Windows y la versión de Ruby para Windows, por ejemplo) pero sería muy difícil migrar mis scripts basados ​​en Cygwin con las herramientas disponibles en Msys.
Jerph
0

Otra forma de hacerlo.

Agregue esta línea en la parte superior de .bash_profile

exec ssh-agent /usr/bin/bash

Luego agregue sus claves en la parte inferior de .bashrc

ssh-add ~/.ssh/myprivate
conocer
fuente
¿Cómo se vincula esto con el concurso? La pregunta era sobre cómo no usar ssh-agentademás de eso.
Tobias Kienzler