我的機器的操作系統是redhat6.8,ip爲:172.10.54.19 遠程有一臺ldap服務,在這臺機器上使用authconfig-tui命令配置ldap客戶端,
1 . 使用id命令,發現可以正常的找到ldap用戶 jiang
2 .使用root用戶su jiang 也能正常切換到jiang用戶
3. 使用ssh [email protected] 時,
報錯:Permission denied, please try again.
4.系統中有個非ldap用戶,非root用戶,是操作系統的普通用戶xiao
使用ssh [email protected] 輸如密碼:正常登陸
4.在機器上,當普通用戶xiao使用:su jiang,輸入密碼:********
報錯:su:incorrect password 可以確保的是密碼是正確的。
分析問題:操作系統用戶可以正常ssh登陸,而ldap用戶不能正常登陸,
1. 有可能是ssh的配置問題,ssh配置文件位置 /etc/ssh/sshd_config
2.ldap的問題,那就涉及到pam組件,pam的配置文件在/etc/pam.d/system-auth
解決問題:1. 首先查看/etc/ssh/sshd_config ,參數: PasswordAuthentication yes | UsePAM yes 這2個參數配置都是正確的,切無其他限制用戶的參數。
2.網上說添加alllowUser jiang,嘗試了一次,重啓sshd服務,發現問題依然存在
3.檢查pam組件,
a.命令:rpm -qa | grep nss-pam
b.返回信息:nss-pam-ldapd-0.7.5-32.el6.x86_64(redhat是需要這個進行ldap的認證,所以必需要安裝)
4.檢查pam的配置文件 system-auth
.....
auth sufficient pam_sss.so use_first_pas
....
account [default=bad success=ok user_unknown=ignore] pam_sss.so
發現系統的auth,account,password,session都只有pam_sss.so,這個是操作系統的認證,缺少ldap級別的認證,加上: auth sufficient pam_ldap.so use_first_pas 這樣的配置,問題解決。這是進行ldap認證,沒有這一行,
同理後面的account,password,session也要加上pam_ldap.so,從而保證ldap用戶和操作系統用戶使用上具有同樣的權限和感知。
account,password,session加上pam_ldap.so的相關配置
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
password sufficient pam_ldap.so use_authtok
session optional pam_ldap.so
結論: 1. auth sufficient pam_sss.so use_first_pas 是操作系統的用戶這一層的認證,所以操作系統用戶xiao用戶可以ssh登陸,
2. 而缺少auth sufficient pam_ldap.so use_first_pas ,也就缺少了ldap層的用戶認證。jiang(ldap用戶)也就未進行ldap認證,可以理解爲輸入的密碼沒有發送到ldap服務端,操作系統接受不到來自ldap服務端有關這個用戶的認證信息,所以認證不通過。
3. 而root具有超級權限,所以可以不用認證,從而直接切換到任意的用戶。
4.redhat7 版本,以及redhat 6.6版本,當使用authconfig-tui的時候,是可以將以上的信息自動寫入到對應的配置文件的。
---------------------
使用authconfig-tui跳出圖形化界面勾選ldap驗證才行。。。
原文:https://blog.csdn.net/xiaowen_1990/article/details/78793382