Git с SSH на Windows - PullRequest
       11

Git с SSH на Windows

40 голосов
/ 23 марта 2010

Я ознакомился с превосходным руководством , предоставленным Тимом Дэвисом , в котором рассказывается о настройке Git для работы с SSH под Windows для создания Git-сервера, чтобы иметь основное место для моей DVCS.

Я нахожусь в процессе создания клона для моего проекта. Я прошел все шаги до этого момента, но я продолжаю получать это от TortoiseGit:

git.exe clone -v “ssh://Administrator@127.0.0.1:22/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”

bash: Administrator@127.0.0.1: command not found
Initialized empty Git repository in E:/GitTest/myapp/.git/
fatal: The remote end hung up unexpectedly
Success

и ничего не клонируется.

Кстати: TortoisePLink появляется как раз перед тем, как появляется это сообщение, и спрашивает меня: «login as:» (я думал, что эта информация дается в команде, т.е.: Administrator@blahblah.

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

echo $HOME
/c/SSH/home/Administrator

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

git.exe clone -v “ssh://Administrator@127.0.0.1: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

Ответы [ 6 ]

88 голосов
/ 03 января 2012

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

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

Определите, какие окна 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

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

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

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

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

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

12 голосов
/ 03 июня 2016

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

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

1. Я установил "git for Windows" (который включает ssh и оболочку bash)

https://git -scm.com / скачать / выиграть

2. Из включенной оболочки bash (которая, для меня, была установлена ​​по адресу: 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 git@github.com:RepoName/Project.git

7 голосов
/ 12 апреля 2010

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

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

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

6 голосов
/ 08 ноября 2017

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

1 голос
/ 27 августа 2018

Если Git для Windows установлен, запустите Git Bash shell:

  bash

Вы можете запустить ssh из оболочки Bash (Bash знает путь ssh)

Длячтобы узнать точный путь ssh, запустите команду "where" в оболочке Bash:

  $ where ssh

и получите:

  c:\Program Files\Git\usr\bin\ssh.exe
0 голосов
/ 07 марта 2019

Я пытался решить мою проблему с некоторыми из ответов выше, и по какой-то причине это не сработало. Я переключился на использование расширений git, и вот шаги, которые я выполнил.

  1. Я пошел к Tools -> Settings -> SSH -> Other ssh client
  2. Установите это значение на C:\Program Files\Git\usr\bin\ssh.exe
  3. Применить

Полагаю, что эти шаги точно так же объясняются выше. Разница лишь в том, что я использовал пользовательский интерфейс Git Extensions вместо терминала. Надеюсь, что это поможет.

...