"Невозможно вызвать ssh" при подключении к Github, но работает ssh -T git @github.com? - программирование

"Невозможно вызвать ssh" при подключении к Github, но работает ssh -T git @github.com?

Мне сложно сработать с 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/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
4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

работал в git bash.

Ответ 3

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

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

Ответ 4

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

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

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

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

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

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

Ответ 5

Я думаю, что путь (например: C:\Program Files (x86)\ Git) имеет пустое пространство, чтобы он не мог распознать.

чтобы решить проблему

  • сделать простую ссылку для сокращения пути

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

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

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

Ответ 6

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

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

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

Ответ 7

В моем случае я смог решить эту проблему, создав соединение каталога в терминале CMD и сбросив GIT_SSH.

Найдите путь команды ssh, выполнив эту команду Windows CMD в терминале Git Bash.

$ where ssh
C:\Program Files\Git\usr\bin\ssh.exe

Создайте соединение без пробелов для исходного каталога Git в терминале CMD.

mklink /J \git "\Program Files\Git"

Затем отредактируйте переменную среды GIT_SSH для использования соединения. В случае Windows 7 Панель управления> Система и безопасность> Система> Расширенные настройки системы.

C:\git\usr\bin\ssh.exe

Я столкнулся с этой проблемой как-то после переключения использования PuTTY на OpenSSH. Версия git была 2.21.0.windows.1. Надеюсь, это поможет.

Ответ 8

В моих установках 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"

Ответ 9

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

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

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

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

к

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

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