我将svnserve
configuration为从inetd
和svnserve.conf
运行设置为使用sasl进行身份validation。 这样,我可以允许那些没有使用svn://
系统范围帐户的用户访问某些存储库。
但是,对于有系统帐户的用户(比如我自己),我更愿意使用svn+ssh://
作为公钥authentication。 这是我的理解,当作为svnserve -t
运行,svnserve不会要求authentication,并将使用SSHauthentication的当前用户。 我觉得这是以前的工作。 今天,当我去更新工作副本时,我使用了svn+ssh://
repository path,它开始要求input密码。
我可以确认SSH不是要求我input密码,公钥authentication成功了,而是svnserve / sasl要求input密码。 如果我closuresSASL,它似乎按预期工作,但我更喜欢纯文本密码文件。 我不确定这是否没有奏效,或者是由于我没有注意到的最新升级而被破坏。 这是在Debian上的颠覆1.9.4。
读完svnserve
源文件后,我find了答案。 即使使用-t
,它仍然委托sasl进行身份validation,只是通过SSH用户的外部身份validation现在是一个选项。 但要做到这一点,我必须在我的/usr/lib/sasl2/svn.conf
文件的mech_list
中添加EXTERNAL
作为允许的机制。