Я столкнулся с интересной проблемой и буквально не знаю, с чего начать искать ее решение!
На машине VCS в нашем офисе работает gitweb, и мой открытый ключ находится на этой машине нормально. Я могу без проблем получить доступ к репозиториям со своей машины, используя свой ключ.
Однако, если я использую какую-либо удаленную оболочку, аутентификация по ключу не работает! Он возвращается к аутентификации по паролю, но пользователь git настроен на отсутствие пароля, так что это бесполезно!
Я подтвердил проблему, подключив SSH к другой машине в офисе, а оттуда обратно на мою. Кроме того, физически используя другую машину для SSH на моей машине и даже через VPN для доступа к моей машине из другой сети. Во всех случаях аутентификация с сервером git завершается ошибкой, хотя они идентичны командам, которые я выполняю локально.
Моя первая реакция заключалась в том, что gitosis (который автоматически обрабатывает ключи) был неправильно настроен. Он включает в себя ряд дополнительных параметров безопасности для ключей:
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
Однако проблема ограничивается мной - другие машины, похоже, могут без проблем пройти аутентификацию, независимо от того, является ли оболочка удаленной или локальной, что говорит о том, что это мой SSH неправильно настроен. Я изменил порт по умолчанию с 22, отредактировав /etc/ssh/sshd_config
но все остальное должно быть по умолчанию. Возможно, кто-то другой редактировал конфигурацию, поэтому все, на что стоит обратить внимание, будет оценено!
Моя машина работает под управлением Ubuntu 9.04 (очевидно, решение может быть обновлено). На самом деле, я просто ищу отправную точку - что-то, что можно найти в Google, чтобы решить проблему. Если это что-то простое, с чем кто-то сталкивался раньше, то это фантастика, но, как я уже сказал, сейчас я действительно в растерянности!
Заранее спасибо!
Я не понимаю вашего описания того, какие ключи и файлы конфигурации находятся в каких системах. Однако, если вы привыкли использовать свой закрытый ключ из ящика, в который вы его не копировали, то вы делаете это с помощью пересылки агента SSH. Попробуйте удалить «no-agent-forwarding» из приведенного выше списка опций и посмотрите, решит ли это вашу проблему.
У меня было несколько ключей в папке ~ / .ssh. Удаление всех из них, кроме основного ключа id_dsa, и повторное добавление этого ключа в gitosis решило проблему.
Почему у меня такое странное поведение - до сих пор загадка! Он должен был обрабатывать ключи по-другому через SSH / в локальной оболочке. Если кто-нибудь может пролить свет на это, мне было бы интересно (у меня есть вывод -v и -vvv для локальных оболочек и удаленных оболочек SSH, если вам это нужно).
Я хотел добавить это на случай, если кто-то еще столкнется с проблемой! (хотя очень сложно искать, потому что очень много вопросов, как вообще настроить ssh-ключи)
Большое спасибо всем, кто помогал.