linux下svn客戶端報錯Cannot negotiate authentication mechanism的解決方法

svn客戶端報錯Cannot negotiate authentication mechanism的解決方法:算法

問題出現的緣由之一:ubuntu

由於SVN服務器配置了saslauthd服務用來實現與ldap的對接,所以認證的機制發生了變化,因此客戶端須要安裝組件才能夠:centos

很簡單對於RHEL/CentOS,客戶端只須要yum安裝相應的包便可:bash

yum -y install cyrus-sasl-plain服務器

ubuntu系統還沒有測試,請查找對應的包安裝便可dom

問題出現的緣由之二:可能與svn的版本或源碼安裝時選擇的模塊有關svn

能夠經過svnserve --version測試

查看是否支持相應的功能,若是不支持則須要升級軟件版本,這裏再也不贅述ui

2、svn+saslauthd+openldap的配置方法加密

這裏主要以saslauthd的配置爲主,openLDAP配置請查看其它文檔

一、首先開啓saslauthd服務會有選擇認證機制的參數‘MECH’

這個參數會從/etc/sysconfig/saslauthd文件中去獲取以環境變量的方式加載

二、須要配置LDAP服務器和認證的相關參數(/etc/saslauthd.conf沒有須本身建立):

ldap_servers: ldap://<LDAP服務器IP地址>
ldap_default_domain:<大家公司的域名,例如example.com>
ldap_search_base:<LDAP基準搜索根分支點,例如ou=People,dc=example,dc=com>
ldap_bind_dn:<LDAP管理員帳戶,例如cn=administrator,dc==example,dc=com>
ldap_password:<LDAP管理員密碼>
ldap_deref: never
ldap_restart: yes
ldap_scope: sub
ldap_use_sasl: no
ldap_start_tls: no
ldap_version: 3
ldap_auth_method: bind
ldap_mech: SSHA #(加密算法選取默認SSHA便可)
ldap_filter:uid=%u #(這裏的含義是把LDAP相應分支下的記錄中uid參數做爲這裏的用戶名,%u是用戶帳戶的含義)
ldap_password_attr:userPassword #(這裏的含義是把LDAP相應分支下的記錄中userPassword參數做爲這裏的驗證密碼)
ldap_timeout: 10
ldap_cache_ttl: 30
ldap_cache_mem: 32786

三、在/etc/sasl2/下新增一個svn.conf文件:

#用戶驗證方法
pwcheck_method:saslauthd
#用戶驗證信息怎麼傳輸
mech_list: plain login

四、在SVN對應的庫中conf目錄下svnserve.conf文件修改認證方式容許sasl認證便可:

svnserve.conf:

[sasl]
use-sasl = true

 五、重啓saslauthd、svn服務便可:

service saslauthd restart

chkconfig --level 3,5 on

(centos7的本身腦補:

仍是我給寫上吧...

systemctl restart saslauthd.service

systemctl enable saslauthd.service

)

svnserve -d -r /Your/SVN/RepoRootDir

六、驗證是否可以驗證成功:

testsaslauthd -u <%u還記得上面配置文件中的uid和%u嗎...> -p <passwd>

若是按老司機的套路走到這一步saslauthd已經言盡,能不能成功就看你LDAP配置了

相關文章
相關標籤/搜索