好的,所以我正在尝试在我的 Ubuntu 服务器上配置和安装 svnserve。到目前为止一切顺利,直到我尝试配置 sasl(以防止纯文本密码)。
所以; 我安装了 svnserve 并使其作为守护进程运行(也将其安装为带有命令的启动脚本svnserve -d -r /var/svn
)。
我的存储库位于/var/svn
并具有以下配置(可在/var/svn/myrepo/conf/svnserve.conf)
(我留下注释)中找到:
[general]
anon-access = none
auth-access = write
realm = my_repo
[sasl]
use-sasl = true
min-encryption = 128
max-encryption = 256
对于 sasl,我在以下位置创建了一个 svn.conf 文件/usr/lib/sasl2/
:
pwcheck_method: auxprop
auxprop_plugin: sasldb
sasldb_path: /etc/my_sasldb
mech_list: DIGEST-MD5
我在该文件夹中创建了它,因为该链接上的文章建议:http ://svnbook.red-bean.com/nightly/en/svn.serverconfig.svnserve.html#svn.serverconfig.svnserve.sasl (也因为它存在并在我执行时被列为结果locate sasl
)。
之后我执行了这个命令:
saslpasswd2 -c -f /etc/my_sasldb -u my_repo USERNAME
它还两次要求我输入密码,这是我提供的。一切顺利。发出以下命令时:
sasldblistusers2 -f /etc/my_sasldb
据我所知,我得到了正确的结果:
USERNAME@my_repo: userPassword
重新启动了 svnserve,也重新启动了整个服务器,并尝试连接。这是我的 TortoiseSVN 客户端的结果:
Authentication error from server: SASL(-13): user not found: unable to canonify
user and get auxprops
我根本不知道我做错了什么。在过去的几个小时里,我一直在网上搜索,但除了我可能需要将 svn.conf 文件移动到另一个位置——例如,subversion 本身的安装位置之外,我什么也没找到。which svn
结果/usr/bin/svn
,因此我将 svn.conf 移至/usr/bin
(尽管这对我来说不合适)。
即使重新启动后仍然无法正常工作。
我的想法不多了。还有谁?
编辑
我尝试改变这个(根据互联网上其他一些论坛告诉我的做法):在文件/etc/default/saslauthd
中,我改变了
START=no
MECHANISMS="pam"
至
START=yes
MECHANISMS="sasldb"
(其实我已经改成START=no
之前START=yes
的了,但是忘记说了)。但仍然没有运气(我确实重新启动了整个服务器)。