Я хотел бы настроить репозиторий Subversion так, чтобы для доступа к репозиторию можно было использовать то же имя пользователя и пароль, что и при входе в систему ssh. Мне удалось получить вход в систему, поэтому требуется правильное имя пользователя, но он принимает любой пароль. Как я могу заставить его также требовать действующий пароль?
Я запускаю сервер Ubuntu 8.04.2 со «стандартными модулями», Apache2, Subversion и libapache2-mod-authnz-external. Вдобавок я нашел утилиту под названием pwauth чтобы помочь с аутентификацией.
Вот соответствующие части из конфигурации:
/etc/apache/apache2.conf
AddExternalAuth pwauth /usr/local/bin/pwauth
SetExternalAuthMethod pwauth pipe
AddExternalGroup unixgroup /usr/local/bin/unixgroup
SetExternalGroupMethod unixgroup environment
/etc/apache/mods-available/dav_svn.conf:
AuthType Basic
AuthBasicProvider external
AuthExternal pwauth
GroupExternal unixgroup
AuthName "Subversion repository"
Require group users
Require user myaccount
/etc/pam.d/pwauth:
auth required pam_succeed_if.so user=www-data
account required pam_localuser.so
config.h для pwauth:
#define PAM /* Linux PAM or OpenPAM*/
#define UNIX_LASTLOG /**/
#define HAVE_LASTLOG_H /**/
#define NOLOGIN_FILE "/etc/nologin" /**/
#define MIN_NOLOGIN_UID 1 /**/
#define CHECK_LOGIN_EXPIRATION /**/
#define CHECK_PASSWORD_EXPIRATION /**/
#define SERVER_UIDS 33 /* user "www-data" */
#define MIN_UNIX_UID 500 /**/
#define SLEEP_LOCK "/var/run/pwauth.lock"
(чего-то не хватает?)
Редактировать: Мне известно о потенциальных проблемах с безопасностью, но я хочу знать, почему эта установка не работает.
Я настраивал это раньше, и, как работает Subversion, он запрашивал у вас пароли сотни раз за сеанс.
(Для этого просто подключите свой клиент Subversion к svn + ssh: // имя пользователя @ имя сервера / путь / к / репо)
Ответ - использовать ssh-ключи.
Настройте пару закрытых / открытых ключей и загрузите открытый ключ в файл ~ / .ssh / authorized_keys, но добавьте к нему префикс "command =" / usr / bin / svnserve -t -r / path / to / repo "
И снова подключитесь, используя svn + ssh, как указано выше
Не делай этого. Не используйте пароли для входа в потенциально менее безопасные приложения. Используйте ssh-ключи, как говорит Брент.
полностью избегать apache и использовать протокол svn + ssh