如何在Subversion中使用Linux用户名和密码?

我想设置Subversion版本库,以便可以使用相同的用户名和密码来访问存储库,如在SSHlogin。 我设法login工作,以便正确的用户名是必需的,但它接受任何密码。 我怎么能得到它需要有效的密码呢?

我使用“标准模块”,Apache2,Subversion和libapache2-mod-authnz-external运行Ubuntu服务器8.04.2。 另外我发现了一个名为pwauth的实用程序来帮助validation。

以下是来自configuration的相关部分:

/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 for 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" 

(有什么缺失?)

编辑:我意识到潜在的安全问题,但我想知道为什么这个设置不起作用。

我之前已经设置好了,而且颠覆的方式会在会话期间提示你input你的密码数百次。

(要做到这一点,只需将你的Subversion客户端连接到svn + ssh:// username @ servername / path / to / repo

答案是使用ssh密钥。

设置您的私钥/公钥对,并将您的公钥上传到您的〜/ .ssh / authorized_keys文件中,但在它前面添加“command =”/ usr / bin / svnserve -t -r / path / to / repo“

如上所述,使用svn + ssh重新连接

不要这样做。 不要在可能不太安全的应用程序中使用login密码。 像布伦特说的使用SSH密钥。

完全避免使用apache并使用svn + ssh协议