2009-09-29 3 views
28

Итак, я думал, что наконец-то получил все настройки на Windows ... затем столкнулся с этой проблемой.Git фатальный: удаленный конец повесил

Текущая настройка

URL: SSH: // пользователь @ хост: порт/myapp.git

Уже запускать Putty - и может подключаться с помощью действительных ключей .ppk через ~ /. ssh/authorized_keys direct. В Git и TortoiseGIT - я установил оба варианта для использования «plink.exe».

шпатлевка работает отлично - никаких проблем - но когда я запускаю этот URL в Баш я получаю для мерзавца клона (URL)

со смертельным исходом: удаленный конец повесила ожидаемо

В Терминал cygwin bash - работает «ssh user @ host» - не работает никаких проблем.

Кто-нибудь предлагает что-нибудь?

+2

Вставьте a -v в команду git clone, чтобы получить дополнительную информацию - там может быть полезный лакомый кусочек. –

+0

эй, я получаю «соединение отказано», которое говорит мне о чем-то, что связано с ключами SSH, но они оба совпадают? – 2009-09-29 16:48:57

+0

кажется, что он не может найти ключ «.ppk» - не знаете, как это исправить? – 2009-09-29 17:00:24

ответ

2

Попробуйте следующие шаги, возможно, что-то даст вам подсказку о вашей проблеме:
1. Запустите шпатлевкой и после установки сервера имя/имя пользователя/ключи и т.д. экономят эти настройки.
2. Запустите plink.exe или plinkw.exe, например plink.exe имя_пользователя @ сервер, (он будет передавать вам некоторую информацию), чтобы увидеть, может ли plink подключаться к серверу.
3. Еще раз проверьте , что git знает, что он должен использовать plink, я бы сказал, со всеми VCS, это проблема, с которой люди чаще всего, за исключением того, что их ключи не настроены должным образом.
Обычно к настоящему времени большинство ваших проблем с ssh будут обнаружены. Теперь просто исправьте их. :)

Update:

Я думаю, что проблема у вас есть вызвана несколько мерзавцев вы получили установили. Для msysgit и cygwin git вам нужно будет установить переменную GIT_SSH. Это делается через «set GIT_SSH = c: \ path \ putty \ plink.exe» или «экспортировать GIT_SSH =/your/path/putty/putty.exe» соответственно. Если вы также используете черепаху git, вам нужно найти «свойства» (или это настройки?) В своем меню и установить там ssh-клиент.
Кроме того, при указании URL-адреса git используйте имя пользователя и имя сервера, например. 'git clone ssh: //[email protected]/your/path/repo.git Имена пользователей и серверов должны использоваться plink, а plink должен иметь возможность подключаться к серверу с этими аргументами, когда все эти требования выполняются, все будет готово.

Удачи.

+0

привет - спасибо за ответ. как проверить, знает ли git, что он должен использовать plink? – 2009-09-30 05:14:59

+0

btw - ok сделал echo $ SSH_GIT и получил соответствующий правильный путь. Я также попробовал plink -p portnumber user @ host -i/path/to/key /, и это успешно подключилось - это просто git, который не работает. – 2009-09-30 05:17:35

+0

Как пробовать установить GIT_SSH вместо SSH_GIT. – Dmitry

0

У меня точно такая же проблема.

Я не использую Putty (только Cygwin). Я использую Windows 7 Ultimate (полностью исправленный с этого момента). Я только что установил Cygwin вчера.

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

Если я копирую git repo на машину (через samba mount), я могу клонировать его, но когда я «git diff» после клонирования, есть куча «разных» файлов без разностей. После «git status» не было выхода из «git diff». Это похоже на новинку, но я не могу понять, как это будет происходить. (У меня есть заголовок в SHELLOPTS, но удаление этого не исправляет.)

Я полностью в тупике.

+0

Btw, ssh для хоста git не производит постороннего выхода. – e40

+0

Я думаю, что это проблема Cygwin 1.7.1. Я только что обновил машину, работающую с Cygwin 1.5 до 1.7.1, и работающий git там теперь терпит неудачу таким же образом. Я отправил что-то на [email protected] и сообщит здесь, если есть разрешение. – e40

+2

Это проблема с Cygwin openssh. Если вы используете файл plink.exe от Putty, вы можете решить проблему: http://www.cygwin.com/ml/cygwin/2009-12/msg01147.html – e40

0

Проверьте версию openssh, которую вы используете в CygWin. Версия 5.5p1-1 (которая является последней на данный момент) дала мне ту же ошибку. Проблема понизилась до 5.4p1-1.

Другим решением является использование шпатлевки/плинка вместо openssh.

Для получения более подробной информации см эту тему: http://www.mail-archive.com/[email protected]/msg103752.html

16

я узнал, что с помощью ssh.exe из пакета Git работает каждый раз, в отличие от SSH, который поставляется с Cygwin (по умолчанию). Использование этой экспортируемой переменной, по-видимому, помогает; он медленнее (2x или более), но он более стабилен. Возьмите его как еще один способ обхода.

$ экспорт GIT_SSH =/cygdrive/с/Program \ Files/Git/бен/ssh.exe

FYI: Эта версия Msysgit поставляется с OpenSSH 4.6p1, OpenSSL 0.9.8e. [works] SSH Cygwin - OpenSSH 5.5p1, OpenSSL 0.9.8n. [Не работает]

+0

Он более стабилен, но потом я теряю ssh- добавить интеграцию. Как я могу указать на ssh.exe Git и только ввести пароль один раз за сеанс? –

+0

Попробуйте скопировать файлы ssh * .exe из msysgit в каталог bin cygwin. –

0

Я получаю сообщение: «удаленный конец Кун-вверх, неожиданные ЭОФ, индекс-пакет не удалось» при клонировании GIT репозиторий, но смог обойти эту проблему с copssh http://sourceforge.net/projects/sereds/files/Copssh

первопричину это пакет Cygwin openssh.

Я удалил оригинал openssh из Cygwin, установил copssh и установил переменную GIT_SSH в бинарные файлы copssh. После этого я просто добавил двоичные файлы copssh в PATH, и теперь я использую copssh вместо openssh - нет никакой разницы.

Все работает нормально, и вопрос больше не появляется.

Другим решением является использование пакета mSysGit.

1

Если вы хотите попробовать cygwin openssh 5.4p1-1, для которого, похоже, это работает, в отличие от 5.5 или 5.6, вы можете использовать зеркала cygwin time machine. Запустите setup.exe с -X и добавить зеркало Url, например:

ftp://www.fruitbat.org/pub/cygwin/circa/2010/05/20/230133 

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

0

Я считаю, что реальная проблема заключается в том, что SSH Cygwin выглядит для .ssh в/дома/имя /.ssh и мерзавец SSH MinGW выглядит для .ssh в C:/пользователь/имя /.ssh

Скорее всего, ваши ключи находятся в одном и только из этих каталогов.

Вы можете пытаться .ssh рассказывающие Cygwin, чтобы использовать другой файл, удостоверяющий личность, используя -i переключатель, или переместить ключи в обоих каталогах, или создать файл конфигурации SSH в/дома/имя /.ssh/config.

Я создал конфиг, который содержит:

Host github.com 
    User jerryasher 
    Hostname github.com 
    IdentityFile c:/Users/jerry/.ssh/id_rsa 

И учитывая, что я могу использовать либо MinGW мерзавец из мерзавца Баша или мерзавца Cygwin в от rxvt взаимодействовать с GitHub.

0

Для устранения этой проблемы запустите «plink -agent github.com» Нажмите y, когда будет предложено кешировать ключ. Войдите в систему как git. Вы автоматически отключитесь. И это сработает.

Источник: http://devlicio.us/blogs/sergio_pereira/archive/2009/05/06/git-ssh-putty-github-unfuddle-the-kitchen-sink.aspx

6

У меня была такая же проблема с Plink для мерзавца под окнами.

При запуске plink.exe -v [email protected] началось отображение Выполняется показ Pageant. Запрос ключей. Pageant имеет 1 SSH-2 ключей логин как: < < < неприятности

Вместо Pageant работает. Запрос ключей. Pageant имеет 1 SSH-2 ключа Использование пользователя «ххх»

Чтобы решить эту проблему, я вымыл записи шпатлевка реестра и сеансы putty.exe -cleanup

После этого палить начинается заново, и просит доверять и хранить хост снова, и он становится без проблем!

+2

Штукатура -cleanup исправила эту проблему, которую я тоже имел (в частности, для того, чтобы заставить TortoiseGit поговорить с GitHub.) К сожалению, он сдувает все ваши конфигурации шпатлевок, поэтому используйте с осторожностью! –

0

Попробуйте использовать абсолютный путь к репо в URL-адресе, который работал на меня.

Вместо:

git ssh://[email protected]:port/myapp.git 

Запись:

git ssh://[email protected]:port//home/user/repo/myapp.git 

Обратите внимание на двойной слэш!

1

У нас была такая же проблема, и здесь есть решение, как мы решили эту проблему:

сначала мы получили:

[email protected]:~$ git clone ssh://[email protected]/~repos/erotika.git/ erotika 
Initialized empty Git repository in /home/zajdan/erotika/.git/ 
Password: 
fatal: '/repos/erotika.git': unable to chdir or not a git archive 
fatal: The remote end hung up unexpectedly 
[email protected]:~$ 

решение:

[email protected]:~$ git clone ssh://[email protected]/~/repos/erotika.git/ erotika 

после тильды должна быть косая черта!