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
Ответы
Ответ 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, и это шаги, которые я выполнил.
- Я пошел в
Tools → Settings → SSH → Other ssh client
- Установите это значение в
C:\Program Files\Git\usr\bin\ssh.exe
- Применять
Я предполагаю, что эти шаги точно так же объясняются выше. Разница лишь в том, что я использовал пользовательский интерфейс Git Extensions вместо терминала. Надеюсь, это поможет.