Tenemos una red de Windows y estoy tratando de poner Tortoise Mercurial en funcionamiento a través de SSH para un repo central para nuestro pequeño equipo. Puedo hacer que funcione en su mayor parte pero plink/tortoiseplink colgar DESPUÉS de ejecutar comandos con éxito (clonar/presionar, etc.)Windows TortoiseHg plink cuelga DESPUÉS clon/push
Configuré Freesshd en nuestro servidor Widnows 2008 rc2 junto con Tortoise Hg. Me he generado una clave pública/privada en el servidor (tenía problemas para generar en el cliente) usando PuttyGen. Clave privada que copié a mi cliente y actualicé mercurial.ini. Clave pública Renombreé y actualicé Freesshd para señalar la carpeta que contiene las claves públicas. En el lado del cliente, he registrado mi clave privada con el concurso, he creado una sesión en Putty junto con apuntarla a mi clave privada y la guardé. Cuando uso Putty para hacer mi conexión inicial, las cosas empiezan a ponerse raras.
Aparece un símbolo del sistema para el nombre de usuario (sin solicitud de contraseña) y, en el símbolo del sistema (después de la autenticación), no puedo escribir. Quizás un problema con Putty. Trataré de usar Tortoise vía (TortoisePlink.exe).
En mercurial.ini tengo: [ui] ssh = "C: \ masilla \ TortoisePlink.exe" -ssh -2 -batch -C -i C: \ Users \ Jude.ssh \ JudePrivate.ppk
Si utilizo la consola puedo clonar el repositorio pero se cuelga DESPUÉS de hacer todo. Usando --debug, la última línea es: 3 archivos actualizados, O archivos fusionados, 0 archivos eliminados, 0 archivos no resueltos
Tipo de lo que esperaría, ya que los archivos obtienen clones. Pero luego no puedo hacer nada más. Ctrl+C
no hace nada y tengo que matar el proceso. (Que por cierto, muestra Ctrl^C en el símbolo del sistema así como el resto de la combinación del teclado).
El repositorio se clona, aparece la versión correcta de los archivos pero la ventana de la consola no se cierra o me devuelve el control.
Si intento usar Hg Workbench, aparece un problema similar. Puedo clonar y empuje - que en realidad sucede - pero utilizando la interfaz gráfica de usuario me sale:
% hg --repository C:\repositories\HgTest push --debug
ssh://[email protected]:22/d:/repositories/hgtest
pushing to ssh://[email protected]:22/d:/repositories/hgtest
running "C:\putty\TortoisePlink.exe" -ssh -2 -batch -C -i
C:\Users\Jude\.ssh\JudePrivate.ppk [email protected] -P 22 "hg -R d:/repositories/hgtest serve --stdio"
sending hello command
sending between command
remote: 145
remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch stream unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024
remote: 1
query 1; heads
sending batch command
searching for changes
all local heads known remotely
no changes found
sending listkeys command
checking for updated bookmarks
sending listkeys command
La barra verde en la parte superior del banco de trabajo dice "Empujar a ssh: // Jude @ dev01: 22/d:/repositories/hgtest ... "como lo hace la barra de estado en la parte inferior. Lo dejé así todo el fin de semana y cuando volví, seguía siendo así. Todavía puedo usar Hg Workbench (tipo de) pero no puedo usar pull/push/clone. Intentar cerrar Hg Workbench da como resultado el mensaje (en la barra de estado) Sync tab cannot exit
y no puedo cerrar la aplicación. Al matar TortoisePlink.exe (o Plink.exe, lo que yo intente) libera la aplicación, puedo usarla o cerrarla normalmente.
Inicialmente pensé que era un problema con TortoiseHg o TortoisePlink, pero descargando Plink de los resultados del sitio de Putty en el mismo.
Para aclarar:
- Me puede empujar/clon a través de SSH y ninguna solicitud de contraseña
- Puedo hacerlo a través de la línea de comandos o en el banco de trabajo de Hg
- Independientemente del método que yo uso (o Plink.exe o TortoisePlink.exe) el proceso debe ser eliminado manualmente.
software utilizado + versiones
Client (Windows Vista de 32 bits)
tortuga Hg 2,3 (Merc 2.1, Python 2.6.6)
Plink 0.62
Servidor - (Windows Server 2008 RC2)
freeSSHd 1.2.4
Igual que el anterior tortuga
Un montón de búsqueda ha dado nada de uso. He intentado todas las sugerencias que he visto (incluso si están relacionadas de forma marginal) pero fueron en vano. Como las funciones reales están funcionando, supongo que configuré correctamente las claves, SSH, Tortoise, etc.
Espero que me falta una opción simple en alguna parte, pero sospecho que está esperando algún tipo de aviso del usuario.
Crucemos los dedos :)
ACTUALIZACIÓN === ===
he encontrado el registro de eventos para masilla (Haga clic derecho en la ventana de la consola masilla, voilá, "Registro de eventos" opción. Una vez yo he cargado la sesión y se abrió, me sale la ventana de consola y un login as:
pronta Después de escribir mi nombre y pulsar Intro, me sale:.
Reading private key file "C:\Users\Jude\.ssh\JudePrivate.ppk"
Pageant is running. Requesting keys.
Failed to get reply from Pageant
Offered public key
Offer of public key accepted
Sent public key signature
Access granted
Opened channel for session
Allocated pty (ospeed 38400bps, ispeed 38400bps)
Started a shell/command
y es en esta etapa I el comando cambia a c:\Windows\system32>
y puede escribe cualquier cosa.
=== === ACTUALIZACIÓN 2
Usando plink que hacer lo siguiente en la consola:
plink -v -ssh [email protected] "cmd /c echo hello"
y, al igual que toda la información -v da, yo vea hello
luego Server sent command exist status 0
y Disconnected: All channels closed
. Esto es lo que esperaría.
Si lo hago con tortoiseplink, `tortoiseplink-v -ssh Jude @ dev01" cmd/c echo hola "'No veo nada devuelto o escrito en la ventana y me aparece un símbolo del sistema nuevamente.
Esto implica que SSH funciona igual que el alias (dev01). Pero, ¿debería ver algo cuando use TortoisePlink?
escribiendo hg clone --verbose -- ssh://[email protected]/d:/repositories/hgtest C:\repositories\test
vuelve a buscar los archivos, los copia en la carpeta de prueba pero no devuelve el símbolo del sistema. Última línea es 3 files updated...
etc.
ACTUALIZACIÓN === === 3
Parece hg.exe se genera por freeSSHd en el servidor y que se cierra/acabado. Cuando el proceso hg.exe se cancela en el servidor, el cliente (cuadro de diálogo consola/clonación) se comporta y finaliza el comando correctamente.
Para aclarar:
- utilizo clon de la línea de comandos o HG Banco de trabajo y especifique el alias de recompra
- De acuerdo con los registros que todo está bien, estoy autenticado, los archivos se tiran hacia abajo a través de SSH y copiado al repositorio local que especifiqué en 1
- En este punto se cuelga, ya sea la consola o HG Workbench o la opción de clic derecho/clonación.
- Usar Process Explorer en el servidor me permite matar a hg.exe generado por el servicio FreeSSHd
- Tan pronto como hago esto, el cliente dice "comando completado con éxito".
Por lo tanto, ahora parece ser un problema con Tortoise Hg en el servidor. Tal vez freeSSHd y la tortuga no juegan bien juntos ... supongo que voy a reinstalar todo ...
=== === ACTUALIZACIÓN 4
Parece que no soy el único con este problema. Había visto esto antes en SO, pero no era relevante en ese momento. Sin embargo, ahora estoy obteniendo el mismo problema: Mercurial over ssh client and server on Windows Ese problema no fue resuelto (hace dos años) entonces ¿tendré que mantener esta pregunta abierta?
http: // mercurial .selenic.com/wiki/AccessingSshRepositoriesFromWindows –
Ya tenía el enlace marcado y lo he seguido. Lo configura bien, pero no ayuda a solucionar problemas ... – Jag
enlace de 2010 sobre la configuración ** freeSSSHd ** para Mercurial - http://opapao.blogspot.com/2010/02/setting-up-freesshd-to -work-with.html, pero puede ser relevante de alguna manera –