«Отказано в доступе» при отправке в удаленный репозиторий через SSH - PullRequest
2 голосов
/ 27 мая 2009

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

  1. создайте новый репозиторий Git на компьютере и нажмите

    mkdir ~/git/test.git
    cd !$
    git --bare init
    
  2. На моем локальном компьютере я создаю новый репозиторий Git и добавляю в него случайный файл:

    mkdir test
    git init
    touch TEST
    git add .
    git commit -m "initial commit"
    
  3. Затем добавьте удаленный компьютер с помощью: git remote add origin ssh://user@site.com/~/git/test.git

  4. Затем я пытаюсь отправить локальный репозиторий на удаленный компьютер с помощью: git push origin master

Вот что я получаю, когда делаю это:

fatal: protocol error: bad line length character  <- sometimes not there
Access denied
Access denied
Access denied
Access denied
FATAL ERROR: Server sent disconnect message
type 2 (protocol error):
"Too many authentication failures for user"

Я использую cygwin на компьютере с XP и пытаюсь перейти на сервер Unix.

Я также пробовал сделать это между двумя компьютерами, которые есть у меня дома, и у меня та же проблема, кстати, обе машины Windows.

Я настроил вход без пароля через SSH и могу ssh без проблем через: ssh user@site.com

Я пытаюсь выяснить это уже два дня, любая помощь будет признательна

Ответы [ 6 ]

5 голосов
/ 27 мая 2009

Возможно, проблема в том, что ~ не будет правильно раскрываться при использовании его в ssh URI. Вам необходимо указать абсолютный путь к репозиторию git на удаленной машине в ssh URI, например:

ssh://user@site.com/home/user/git/test.git
2 голосов
/ 20 июня 2011

У меня была похожая проблема, но решение оказалось немного другим для моей ситуации. Я получил сообщение об ошибке:

$> git push -v unfuddle master
Pushing to git@subdomain.unfuddle.com:subdomain/repo.git
Received disconnect from 174.129.246.239: 2: Too many authentication failures for git
fatal: The remote end hung up unexpectedly

Я не мог понять, в чем проблема, ssh -vv тоже ничего не показывал. У меня уже был этот текст в моем ~ / .ssh / config

Host subdomain.unfuddle.com
    User git
    IdentityFile ~/.ssh/unfuddle-subdomain-key

Проблема оказалась в том, что SSH-сервер Unfuddle настроен на запрет доступа после того, как было выполнено определенное количество ключей SSH. Несмотря на то, что у меня был определенный набор IdentityFile, мой SSH-клиент по неизвестным причинам пробовал все мои локальные SSH-ключи последовательно, пока Unfuddle не запретил доступ. Решением было установить для параметра конфигурации SSH «IdentitiesOnly» значение «да», которое указывает локальному SSH-клиенту отправлять только один IdentityFile, а другие - нет.

# The fixed ~/.ssh/config line
Host subdomain.unfuddle.com
    User git
    IdentitiesOnly yes
    IdentityFile ~/.ssh/unfuddle-subdomain-key

Ссылка: http://railspikes.com/2010/2/1/fixing-the-heroku-too-many-authentication-failures-for-git-problem

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

Джеймс

0 голосов
/ 16 августа 2013

Еще один ключ для решения такой проблемы. В нашем случае причиной был файл gitolite.conf с репозиториями и разрешениями. Кто-то отредактировал его с помощью Блокнота Windows, который добавил заголовок спецификации. После этого хранилище имело очень странное поведение, когда некоторые пользователи могли, но некоторые не могли писать в него, получая сообщения, запрещающие доступ.

0 голосов
/ 30 мая 2009

В вашем случае проблема, вероятно, в ~ символе. Использование:

  git remote add origin user@site.com/git/test.git

Однако я также видел эту проблему (всегда на клиентских компьютерах с Windows), когда отсутствовала часть имени пользователя ("user @"), поэтому любой, кто сталкивается с этой проблемой, тоже должен это проверить.

0 голосов
/ 27 мая 2009

Попробуйте использовать

ssh://user@site.com:/home/user/git/test.git
0 голосов
/ 27 мая 2009

Я не уверен насчет ваших проблем с доступом, но путь в

git remote add origin ssh://user@site.com/~/git/test.git

беспокоит меня. Что вы получаете с

git remote add origin ssh://user@site.com/git/test.git

Также, пожалуйста, покажите вывод git push -v ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...