it-roy-ru.com

"Не удается создать ssh" при подключении к Github, но ssh -T [email protected] работает?

Мне трудно заставить Github (+ Netbeans работать). 

Я хочу использовать ssh с git (в Windows 7), например, для фиксации или клонирования проекта, но я получаю следующее сообщение об ошибке: 

$ git clone [email protected]:USER/PROJECTNAME.git
error: cannot spawn C:\Program Files (x86)\Git\bin\ssh.exe: No such file or directory
fatal: unable to fork

Примечание: На данный момент моя переменная среды GIT_SSH указывает на C:\Program Files (x86)\Git\bin\ssh.exe, но я также пробовал C:\Program Files (x86)\Git\bin, полностью ее стирая, указывая на папку PuTTY's/plink и указывая на их исполняемые файлы, но все еще то же сообщение. 

Когда я проверяю соединение, все работает нормально: 

$ ssh -T [email protected]
Hi USER! You've successfully authenticated, but GitHub does not provide Shell access.

Что я делаю неправильно? Имеет ли значение, если я делаю git init в каталоге в первую очередь?

ПРАВКА

Это не помогло:

установка GIT_SSH в plink.exe и добавление пути plink к PATH

** Правка 2 **

результат команды с GIT_TRACE=2

$ GIT_TRACE=2 git clone [email protected]:XXX/AffableBean
trace: built-in: git 'clone' '[email protected]:XXX/AffableBean'
Cloning into 'AffableBean'...
trace: run_command: 'Plink.exe' '-batch' '[email protected]' 'git-upload-pack '\''XXX/AffableBean'\'''
error: cannot spawn Plink.exe: No such file or directory
fatal: unable to fork
19
Patryk

Это действительно неловко, но настоящая проблема была с моим брандмауэром Comodo Firewall, который каким-то образом блокировал ssh-соединение от инициализации git

Я могу без проблем подключиться через SSH, например. используя командную строку или PuTTY, но каким-то образом Comodo вызывал эту странную проблему.

Спасибо всем за поддержку!

2
Patryk

В моем случае установка GIT_SSH на: 

GIT_SSH =/c/Program\Files\(x86) /Git/bin/ssh.exe

работал в Git Bash.

9
schoetbi

Ни один из ответов до сих пор не работал для меня. В итоге мне удалось решить эту проблему, удалив кавычки из моей переменной GIT_SSH и вообще не экранируя символы, стиль пути MSYS (например, /c/path\ to\ PuTTY/plink.exe). Просто введите путь, как обычно, Git обрабатывает цитирование.

set GIT_SSH=C:\path to PuTTY\plink.exe

Вот и все. При использовании GIT_TRACE вы можете видеть, что переменная заключена в кавычки в результирующей команде так:

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

  2. путь заключен в одинарные кавычки, поэтому пробелы в порядке.

Надеюсь, что это помогает кому-то.

5
cgchoffman

Вы пытались установить ssh.exe по пути, который не содержит пробелов? А вы проверяли, работает ли цитирование с обратной косой чертой (\\)?

Вы также можете попробовать GIT_TRACE=2 git clone <...>, он должен показать вам команду и параметры, которые git пытается запустить для соединения.

5
user1338062

я думаю, что путь (например: C:\Program Files (x86)\Git), имеющий пустое пространство, поэтому он не может распознать. 

решить это

  • сделать простую ссылку, чтобы сократить путь 

    mklink/d "C:/Git" "C:\Program Files (x86)\Git"

это работает для меня, а также для Дженкинс (если вы используете его с плагином Git)

  • установить GIT_SSH = C:\Git
  • Наконец, установите PATH на %GIT_SSH%\bin
2
biolinh

Если у вас нет неясного взаимодействия с антивирусом, единственный другой случай (кроме выпуск 313 вы имеете в виду), где появляется это сообщение об ошибке:

" ошибка: не может появиться git: нет такого файла или каталога "

если вы когда-нибудь получите эту ошибку "error: cannot spawn git: No such file or directory", это действительно неприятная проблема.
Мне потребовался день, чтобы отследить его, но все сводится к тому, что если у вас есть более 500 тегов в хранилище, он должен взорвать некоторые внутренние ограничения командной строки.
TLDR: если вы получили эту ошибку, удалите несколько ваших тегов.

1
VonC

На моей установке Windows 7 по умолчанию MS Git Bash мне нужно было установить GIT_SSH:

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

Так что просто найдите ваш ssh.exe, поставляемый с установкой Git, и обновите вышеупомянутое, указав правильный каталог.

Чтобы сделать это постоянным каждый раз, когда вы запускаете git bash, просто добавьте ваш домашний каталог в файл .bashrc:

export GIT_SSH="C:\\Program Files (x86)\\Git\\bin\\ssh.exe"
0
Mareker

Я постоянно получаю ошибку

ошибка: не удается создать "C:\Plink.exe": нет такого файла или каталога смертельный: не в состоянии раскошелиться

при выполнении git Push и git pull. Я решил это, зайдя в файл .git/config и изменив

url = [email protected]:<USER>/<REPO>.git

в

url = https://github.com/<USER>/<REPO>

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

0
andrewzm