У меня есть сервер Windows с проектом, настроенным с системой контроля версий. Предположим, это GIT или SVN или .... Предположим, над этим проектом работают 10 человек по всему миру.
Первое, что приходит в голову, - это защитить соединение между этим программатором и сервером с помощью SSH. но моя проблема в том, что хакер может уничтожить сервер, если он получит имя пользователя и пароль учетной записи SSH (скажите мне, если я ошибаюсь).
Так что мне нужен безопасный способ, позволяющий программистам загружать свою версию на сервер. Любые идеи были бы прекрасны
Во-первых, можно защитить учетную запись SSH (например, с помощью аутентификации только с открытым ключом).
При правильной настройке Mercurial вы можете только выдвигать новые версии, но ничего не уничтожать. Но если злоумышленник получит доступ на запись в репозиторий, у вас все равно возникнут другие проблемы. Вы также можете использовать защищенный доступ по протоколу HTTP, если не хотите предоставлять им новую учетную запись.
В настоящее время я использую распределенную систему контроля версий под названием «darcs». Я пробовал оба подхода, описанные ниже, используя этот инструмент и серверы Linux. Я также использовал подход 1 с Subversion и с CVS.
Ваш пробег может отличаться на разных серверах и / или системах контроля версий. Но основные подходы могут быть реализованы так или иначе в любых выбранных вами конфигурациях.
1- Используя одну учетную запись пользователя, не разглашая никому ее пароль, вы аутентифицируете подключения к этой учетной записи через SSH с помощью открытых ключей. Вы ограничиваете привилегии этой единственной учетной записи, чтобы иметь доступ только к репозиторию. Участники вашего репозитория должны сгенерировать пару закрытого / открытого ключей и отправить вам открытый ключ, чтобы вы могли добавить его к авторизованным ключам. Если его удалить, он теряет доступ.
2- Требуйте от разработчиков патча подписывать патчи и отправлять их по электронной почте. Вы поддерживаете открытую связку ключей, в которой хранятся ключи авторизованных участников. все подписи исправлений проверяются на соответствие этой связке ключей перед их применением. Таким образом, применяются только патчи, подписанные авторизованными участниками.