Ssh

為什麼使用 sasl 時 svnserve 仍然通過 svn+ssh 詢問密碼?

  • August 30, 2016

我已svnserve配置為執行inetdsvnserve.conf設置為使用 sasl 進行身份驗證。這樣我就可以允許沒有系統範圍帳戶的使用者使用svn://.

但是,對於確實有系統帳戶的使用者(例如我自己),我更喜歡使用svn+ssh://公鑰身份驗證。我的理解是,當執行 as 時svnserve -t,svnserve 不會要求身份驗證,而是使用經過 SSH 身份驗證的目前使用者。我覺得這曾經奏效。今天,當我使用svn+ssh://儲存庫路徑更新工作副本時,它開始要求我輸入密碼。

我能夠確認不是 SSH 要求我輸入密碼,公鑰認證成功,是 svnserve/sasl 要求我輸入密碼。如果我關閉 sasl,它似乎可以按預期工作,但我更喜歡 sasl 而不是明文密碼文件。我不確定這是否從未奏效,或者它被我沒有註意到的最近升級破壞了。這是 Debian stretch 上的 subversion 1.9.4。

看完svnserve源碼,我找到了答案。即使使用-t,它仍然委託 sasl 進行身份驗證,只是現在可以選擇通過 SSH 使用者進行外部身份驗證。但是為了使它工作,我必須在我的文件中添加EXTERNAL一個允許的機制。mech_list``/usr/lib/sasl2/svn.conf

引用自:https://serverfault.com/questions/799893