Назад | Перейти на главную страницу

Как использовать имя пользователя и пароль Linux с Subversion?

Я хотел бы настроить репозиторий 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