Подтвердить что ты не робот

Git с SSH в Windows

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

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

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

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
4b9b3361

Ответ 1

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

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

Определите, какие окна ssh используются, выполнив команду "where" 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 сможет использовать ключи, созданные ранее.

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

  • Откройте проводник Windows.
  • Щелкните правой кнопкой мыши компьютер и выберите "Свойства"
  • Нажмите ссылку "Дополнительные системные настройки" слева.
  • Нажмите кнопку "Переменные среды..."
  • В разделе системных переменных выберите переменную GIT_SSH и нажмите кнопку "Изменить..."
  • Обновить значение переменной.
  • Нажмите ОК, чтобы закрыть все окна

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

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

Ответ 2

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

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

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

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

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 [email protected]:RepoName/Project.git

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

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

  bash

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

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

  $ where ssh

ты получаешь:

  c:\Program Files\Git\usr\bin\ssh.exe

Ответ 6

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

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

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