2010-03-23 15 views
31

He pasado por el excellent guide provided by Tim Davis que trata sobre la configuración de Git para que funcione con SSH bajo Windows a fin de producir un servidor Git para tener un lugar principal para mi DVCS.Git con SSH en Windows

Estoy en el proceso de crear un clon para mi proyecto. Yo he ido a través de todos los pasos hasta este punto, pero me siguen dando esto desde TortoiseGit:

git.exe clone -v “ssh://[email protected]:22/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp” 

bash: [email protected]: command not found 
Initialized empty Git repository in E:/GitTest/myapp/.git/ 
fatal: The remote end hung up unexpectedly 
Success 

y nada se clona.

Por cierto: El TortoisePLink viene justo antes de que aparezca este mensaje y me pregunta: “login as:” (pensé que esta información se da en el comando, es decir:. [email protected]

Mi variable de la casa está en la correcta lugar: Desde un Bash shell de Git:

echo $HOME 
/c/SSH/home/Administrator 

también he intentado usar plink en lugar de TortoisePLink de masilla (tanto en la instalación de Git y TortoiseGit 's) Esta vez el error se redujo a:.

git.exe clone -v “ssh://[email protected]:22/c:/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp” 

Initialized empty Git repository in E:/GitTest/myapp/.git/ 
fatal: The remote end hung up unexpectedly 
+0

El enlace en su pregunta se rompe ... – enigmaticPhysicist

+0

Wayback Machine al rescate! http://web.archive.org/web/20170507103323/http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on- windows/ –

Respuesta

7

está utilizando un presupuesto inteligente en lugar de " aquí:

git.exe clone -v “ssh:// 
       ^^^ 

Asegúrese de que utiliza la llanura de edad, de doble comilla.

71

Luché con este problema durante unas horas antes de tropezar con la respuesta obvia. El problema que tuve fue que estaba usando diferentes implementaciones ssh entre cuando generaba mis claves y cuando usaba git.

Utilicé ssh-keygen desde el símbolo del sistema para generar mis claves pero cuando probé "git clone ssh: // ..." obtuve los mismos resultados que usted, un mensaje para la contraseña y el mensaje " fatal: el extremo remoto colgó inesperadamente ".

Determine qué ssh windows está utilizando ejecutando el comando "dónde" de Windows.

C:\where ssh 
C:\Program Files (x86)\Git\bin\ssh.exe 

La segunda línea le indica qué programa exacto se ejecutará.

A continuación debe determinar qué ssh está usando ese git. Encuentre esto por:

C:\set GIT_SSH 
GIT_SSH=C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe 

Y ahora usted ve el problema.

Para corregir esto simplemente ejecutar:

C:\set GIT_SSH=C:\Program Files (x86)\Git\bin\ssh.exe 

para comprobar si se aplican los cambios:

C:\set GIT_SSH 
GIT_SSH=C:\Program Files (x86)\Git\bin\ssh.exe 

Ahora Git será capaz de utilizar las teclas que se generó anteriormente.

Esta revisión es tan solo para la ventana actual. Para solucionarlo por completo, necesitas cambiar tu variable de entorno.

  1. Abrir el explorador de Windows
  2. derecho del ratón en Equipo y seleccione Propiedades
  3. Haga clic en Configuración avanzada del sistema enlace a la izquierda
  4. Haga clic en las variables de entorno ... botón
  5. En la sección de variables del sistema seleccione la variable GIT_SSH y presione el botón Editar ...
  6. Actualice el valor de la variable.
  7. Pulse OK para cerrar todas las ventanas

ahora ningún futuros comandos de Windows que abra tendrá la configuración correcta.

Espero que esto ayude.

+0

This ¡trabajó para mi! gracias –

7

Dado que esto sigue apareciendo en los resultados de búsqueda para hacer que git y github funcionen con SSH en Windows (y porque no necesitaba nada de las guías anteriores), agrego la siguiente y simple solución.

(Microsoft dice que son trabajando para añadir SSH para Visual Studio y GitHub para Windows todavía no es compatible con SSH ...)

1. he instalado "Git para Windows" (que incluye ssh y un intérprete de comandos bash)

https://git-scm.com/download/win

2. a partir de la cáscara del golpe incluido (que, para mí, fue instalado en: C:\Program Files\Git\git-bash.exe)

cd a nivel de la raíz de la que desea tu repositorio guarda (algo así como: C:\code\github\), y

Tipo:

eval $(ssh-agent -s) && ssh-add "C:\Users\YOURNAMEHERE\.ssh\github_rsa"

3.Tipo: (el enlace SSH del repositorio)

git clone [email protected]:RepoName/Project.git

+0

¿Alguna idea de por qué tienes que ajustar el ssh-agent en eval para que funcione? – Fractalf

+2

@Fractalf así es como está diseñado. 'ssh-agent -s' genera código de shell, y' eval "$ (ssh-agent -s)" 'ejecuta el código generado. – shadowtalker

1

he encontrado mi ssh.exe en "C:/Archivos de programa/Git/usr/bin"

Cuestiones relacionadas