Сделать gitosis-admin git репозиторий безопасным - PullRequest
4 голосов
/ 21 ноября 2011

Я установил gitosis на свой сервер Ubuntu 10.4 через

    apt-get install gitosis

Затем я инициализировал репозиторий администратора с помощью

    sudo -H -u gitosis gitosis-init < nameOfThePublicKeyFile

После этого я подумал, что это хранилище администратора является клонируемым только для клиентов, которые предлагают закрытый ключ, который соответствует файлу открытого ключа хранилища. Поэтому, чтобы быть уверенным, я проверил, можно ли клонировать репозиторий без закрытого ключа или с ложным секретным ключом. К сожалению и удивительно, это сработало. Я проверил это с помощью Tortois Git на Windows.

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

Я пропустил важный шаг в процессе установки или что-то еще?

Спасибо за любую помощь!

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

Я думаю, что нашел ошибку, и она не имеет ничего общего с gitosis.

Я обнаружил, что мой tortoisgit-клиент в Windows каким-то образом кэширует правильный файл закрытого ключа соединения git, если он успешно клонировал репозиторий.один раз.Даже если впоследствии я предоставлю неверный ключевой файл (я не знаю, где он его сохраняет, но я видел его в файле конфигурации, который создается tortoisgit при клонировании репозитория.)

Я пытался клонировать свойхранилище с другим компьютером с Windows, просто чтобы быть уверенным, что это только проблема кеширования.И вуаля этот другой компьютер, который никогда не видел мой файл закрытого ключа, не мог клонировать хранилище.

0 голосов
/ 21 ноября 2011

Всегда полезно, когда GUI не удается (в данном случае TortoiseGit) вернуться к CLI (msysgit или git самой), чтобы проверить, сохраняется ли проблема.

Вы видели, что это может быть связано с проблемой кэша аутентификации в TortoiseGit, и ошибка 659 действительно иллюстрирует эту проблему кэша.

Другой вариант - попытаться использовать ssh-адрес 'config', то есть ssh-адрес, основанный на конфигурационном файле ssh (где вы можете явно указать имя закрытого ключа, используемого для этого соединения).
В качестве примера см. " NBGit для удаленного хоста с ssh " или " git + сборка + несколько ключей ssh ​​/ несколько компьютеров ".

...