Открытый ключ принимается с помощью SSH, но не работает с git

Я использую gitosis для управления репозиторием. У меня есть два других ключа, которые работают отлично. Я недавно добавил третий ключ.

Все ключи работают, когда я подключаюсь к машине по SSH (я получаю сообщение об ошибке, упомянутое здесь как нормально, а в auth.log сервера написано "Найден соответствующий ключ RSA..."). Однако, когда я запускаю команду:

git clone -b <branch> ssh://gitosis@<server>/<project>

с новым третьим ключом сервер auth.log показывает "Ошибка публичного ключа для gitosis...". Та же самая команда «git clone» работает и для других ключей.

Разрешения для файлов .ssh установлены правильно, так как я могу подключиться к машине по SSH.

Обе машины Ubuntu.

Что может привести к отклонению «клона git», в то время как SSH будет принят?


person jason    schedule 29.09.2011    source источник
comment
Я удалил gitosis и установил gitolite, однако та же проблема сохраняется. На самом деле одни и те же вещи работают и одни и те же вещи не работают. Теперь я просто использую другой инструмент управления git и другой ключ клиента (я заново создал ключ, чтобы убедиться, что и клиент, и сервер имеют один и тот же ключ). Таким образом, проблема связана либо с сервером SSH, либо с клиентом git. Я склоняюсь к проблеме с клиентом git, поскольку другие машины могут успешно выполнять клонирование. Будут ли разные версии проблемой? клиент — git v1.7.0.4, а сервер — git v1.7.4.1.   -  person jason    schedule 04.10.2011
comment
такая же проблема здесь с битбакетом - проверка подлинности git перестала работать. привык работать нормально.   -  person Stefano    schedule 11.04.2013


Ответы (1)


Это должно означать, что у вас есть файл конфигурации ssh (~/.ssh/config) с:

  • раздел Host <server>
  • другой IdentityFile (т. е. полный путь к открытому ключу), отличный от того, который должен быть у пользователя gitosis
person VonC    schedule 29.09.2011
comment
ни на одной из машин нет ~/.ssh/config files, и единственная разница в /etc/ssh/ssh_config заключается в строке GSSAPIAuthentication. У машины gitosis нет, а у клиентской машины есть. Изменение машины gitosis на yes не решило проблему. - person jason; 29.09.2011
comment
@jma: вы уверены, что gitosis/.ssh/id_rsa.pub был опубликован как принудительная командная строка gitolite в файле server/.ssh/authorized_keys? - person VonC; 29.09.2011
comment
да. Я вижу третий (нерабочий) ключ в файле ~/.ssh/authorized_keys учетной записи gitosis. Кроме того, я могу подключиться к машине по SSH и распознать ключ. - person jason; 29.09.2011
comment
@jma одного соединения недостаточно: его нужно зарегистрировать как принудительную команду. Но если ваш третий ключ появляется в строке, похожей на два других, это не проблема. - person VonC; 29.09.2011
comment
@jma, так что ... как насчет использования гитолита? ;) stackoverflow .com/questions/7591958/ - person VonC; 29.09.2011
comment
Я не уверен, что вы подразумеваете под принудительной командой, но если это не проблема, я думаю, это не имеет значения. - person jason; 29.09.2011
comment
использование gitolite - это то, что я почти сделал. Однако то, что я новичок в git и у меня уже есть работающие репозитории, заставило меня задуматься. Затем, поскольку проблема, похоже, не в gitosis, а в SSH-сервере (отсюда ошибка) или в git-клиенте, я решил, что мне лучше выяснить, в чем проблема, прежде чем тратить время на то, чтобы проблема возникла. под гитолит тоже. - person jason; 29.09.2011
comment
@jma: на фронте принудительной команды см. stackoverflow.com/questions/5803404/ и oreilly.com/catalog/sshtdg/chapter/ch08.html#22858 - person VonC; 30.09.2011