Вопрос по version-control, git, github, ssh – «Не удается создать ssh» при подключении к Github, но ssh -T [email protected] работает?

19

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

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

<code>$ 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
</code>

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

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

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

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

РЕДАКТИРОВАТ:

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

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

** РЕДАКТИРОВАТЬ 2 **

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

<code>$ 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
</code>
Я исправил, что папка, содержащаяssh вPATH? Stephen Newell
У GIT_SSH есть пробелы вообще? Во втором примере похоже, что вы можете запустить ssh напрямую, так что это на вашем пути? Я предполагаю, что если у вас есть ssh в вашей переменной PATH, вам не нужно устанавливать переменную GIT_SSH. Stephen Newell
@ StephenNewell Даже если у меня естьssh (или любой другой ssh-клиент в PATH) Я все еще получаю то же сообщение. Я даже пытался сброситьGIT_SSH переменная, но она все равно не будет работать. Patryk
Какое сообщение об ошибке вы получите, если GIT_SSH не установлен? Похоже, ssh работает правильно сам по себе, но по какой-то причине git играет не очень хорошо. Stephen Newell
@ StephenNewell Каждый раз, когда я получаю сообщение, например, :error: cannot spawn C:\Putty\plink.exe: No such file or directory fatal: unable to fork но когдаGIT_SSH не установлено, например,...plink.exe изменения кssh Patryk

Ваш Ответ

7   ответов
9

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

работал в Git Bash.

Благодарность. Это сработало для меня с небольшой модификацией. Я использовал Git Bash на Windows. GIT_SSH = / c / Program \ Files \ \ (x86 \) / Git / bin / ssh.exe. Требуется обратная косая черта перед скобками. jay
Это тоже сработало для меня. Запуск Git Bash в Windows 10 с сообщением об ошибке error: not spawn c: \ Program Files (x86) \ GitExtensions \ PuTTY \: Нет такого файла или каталога, неустранимого: невозможно выполнить форк Dan Persson
@ DanPersson, конечно, это не такой файл или каталог, потому что первый пробел будет ломать весь путь, в этом случае вам нужно использовать \ перед каждым пробелом, или просто использовать GIT_SSH = "c: \ Program Files (x86) \ Git \ bin \ ssh.exe "и все. golddragon007
5

не содержащему пробелов? И вы проверили, работает ли цитирование обратной косой черты \\)?

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

Что вы подразумеваете под «установкой ssh.exe»? Какой ssh ты здесь имеешь ввиду? OpenSSH? Git's ssh? Patryk
Я бы сначала проверил установку git's ssh.exe в путь без пробелов (например, "c: \ git")! Смотрите этот комментарий: Code.google.com / р / msysgit / вопросы / детали? ID = 313 # c3 user1338062
Я имел в видуGit\bin\ssh.exe который упоминается в сообщении об ошибке. Мне кажется, что существует проблема с указанием пути, поэтому может помочь проверка того, что ssh.exe установлен в пути без пробелов. user1338062
Я уже пробовал это: я скопировалssh.exe вC:\Putty и поставь мойGIT_SSH вC:\Putty\ssh.exe и еще: я получаю это:http: //pastebin.com/fXBvT3X P.S. Я также пробовалC:\\Putty\\ssh.exe Patryk
Где я могу проверить обратную косую черту? В ПУТИ? Если нет, то были? Patryk
5

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

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

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

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

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

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

2

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

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

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

1

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

"error: не может вызвать git: нет такого файла или каталога"

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

@ Patryk Я хотел, чтобы вы проверили, не содержит ли в вашем репозитории GitHub, который вы пытаетесь клонировать, слишком много тегов: см., Например, теги этого репо: Github.com / мерзавец / мерзавец / теги и проверьте, содержит ли репозиторий, который вы хотите клонировать, более 500 тегов:https://github.com/username/reponame/tags VonC
Спасибо за ответ, но что это за теги? Patryk
Нет, это не проблема, потому что репозиторий, который я хочу клонировать, почти пуст - есть только файл README и один файл с кодом. Patryk
@ Patryk Хорошо, я оставлю ответ, если у других возникнут проблемы. VonC
0

error: не может порождать "C: \ Plink.exe": нет такого файла или каталога фатально: невозможно форк

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

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

К

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

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

0

тановить 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"

Похожие вопросы