it-swarm.xyz

Git с SSH на Windows

Я просмотрел превосходное руководство, предоставленное Тимом Дэвисом о настройке Git для работы с SSH под Windows, чтобы создать Git Server, чтобы иметь основное место для моей 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
36
pankar

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

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

Определите, какие окна использует 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. Нажмите на ссылку Advanced System Settings слева.
  4. Нажмите кнопку Переменные среды ...
  5. В разделе системных переменных выберите переменную GIT_SSH и нажмите кнопку Изменить ...
  6. Обновите значение переменной.
  7. Нажмите ОК, чтобы закрыть все окна

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

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

79
Todd

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

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

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

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. _ ​​Type: (ссылка SSH из репозитория)

git clone git@github.com:RepoName/Project.git

11
jaygeek

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

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

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

7
J-16 SDiZ

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

6
user3183915

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

  bash

Вы можете запустить ssh из Bash Shell (Bash знает путь ssh)

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

  $ where ssh

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

  c:\Program Files\Git\usr\bin\ssh.exe
0
M.Hassan