"Невозможно вызвать 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
Ответы
Ответ 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) имеет пустое пространство, чтобы он не мог распознать.
чтобы решить проблему
он работает для меня, а также для Дженкинса (если вы используете его с плагином 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>
Надеюсь, это поможет!