2010-03-23 2 views
31

Я прошел через excellent guide provided by Tim Davis, который рассказывает о настройке Git для работы с SSH под Windows, чтобы создать Git-сервер, чтобы иметь основное место для моего DVCS.Git с SSH на Windows

Я создаю клон для своего проекта. Я прошел через все шаги до этого момента, но я получаю это от 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 

и ничто не клонировали.

КСТАТИ: TortoisePLink приходит как раз перед этим сообщением появляется и спрашивает меня: «login as:» (я думал, что эта информация даются в команде, то есть:. [email protected]

Мой дом переменной установлена ​​правильно Место: с Git Bash оболочки:

echo $HOME 
/c/SSH/home/Administrator 

Я также попытался использовать Plink замазку вместо из TortoisePLink (как в установке Git и и TortoiseGit «s) на этот раз ошибка была уменьшена до:.

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

Ссылка на ваш вопрос сломана ... – enigmaticPhysicist

+0

Вайбак машина на помощь! http://web.archive.org/web/20170507103323/http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-windows/ –

ответ

7

вы используете смарт цитата вместо " здесь:

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

Убедитесь, что вы использовать набившие оскомину-двойные кавычки.

71

Я боролся с этой проблемой в течение нескольких часов, прежде чем споткнуться о очевидном ответе. Проблема была в том, что я использовал разные реализации ssh между тем, когда я сгенерировал свои ключи и когда использовал git.

Я использовал ssh-keygen из командной строки для генерации моих ключей, но когда я попытался «git clone ssh: // ...», то получил те же результаты, что и вы, приглашение для пароля и сообщение " фатальный: удаленный конец неожиданно повесил трубку ».

Определите, какие окна ssh используют, выполнив команду «где» Windows.

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

Вторая строка сообщает вам, какая именно программа будет выполнена.

Далее вам нужно определить, какой ssh ​​используется git. Найти это по:

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

И теперь вы видите проблему.

Чтобы исправить это просто выполнить:

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

Чтобы проверить, применяются изменения:

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

Теперь мерзавец будет иметь возможность использовать ключи, которые вы сгенерированные ранее.

Это исправление пока доступно только для текущего окна. Чтобы полностью исправить это, вам нужно изменить переменную среды.

  1. Открыть Проводник Windows
  2. правой кнопкой мыши Компьютер и выберите Свойства
  3. Нажмите Дополнительные параметры системы по ссылке слева
  4. Нажмите Переменные среды ... кнопку
  5. В разделе Системные переменные выберите GIT_SSH и нажмите кнопку Edit ...
  6. Обновить значение переменной.
  7. Нажмите кнопку OK, чтобы закрыть все окна

Теперь все будущие окна команды, которые вы откроете, правильные настройки.

Надеюсь, это поможет.

+0

Это работал на меня! thanks –

7

Так как это продолжает появляться в результатах поиска для создания git и github работы с SSH на Windows (и потому, что мне ничего не нужно из руководств выше), я добавляю следующее, простое решение.

(Microsoft говорит, что они являются работают над добавлением SSH в Visual Studio, и GitHub для Windows, по-прежнему не поддерживает SSH ...)

1. Я установил "мерзавца для Windows" (который включает в себя SSH и Баш оболочки)

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

2. Из прилагаемого Баш оболочки (который, для меня, был установлен по адресу: C:\Program Files\Git\git-bash.exe)

cd на корневом уровне, где вы хотите, чтобы ваш репо сохранены (что-то вроде: C:\code\github\) и

Тип:

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

3.Тип: (ссылка SSH из репо)

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

+0

Любая идея, почему вы должны обернуть ssh-agent в eval, чтобы заставить его работать? – Fractalf

+2

@Fractalf вот как он разработан. 'ssh-agent -s' генерирует код оболочки, а' eval '$ (ssh-agent -s) "запускает сгенерированный код. – shadowtalker

1

Я нашел свой ssh.exe в "C:/Program Files/Git/USR/бен" каталог