为什么使用sasl时svnserve仍然通过svn + ssh请求密码?

我将svnserveconfiguration为从inetdsvnserve.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作为允许的机制。