ฉันกำลังพยายามตั้งค่าบนเซิร์ฟเวอร์ openldap ที่ทำงานบนเดเบียน 6 การรับรองความถูกต้อง ssh บนโฮสต์ ldap-client ชื่อ ldap_client
นี่คือสิ่งที่ ldapsearch ส่งคืนบนเซิร์ฟเวอร์:
dn: dc=localnet,dc=lan
objectClass: dcObject
objectClass: organization
dc: localnet
o: Some_Enterprise
description: localnet.lan
dn: ou=people,dc=localnet,dc=lan
objectClass: top
objectClass: organizationalUnit
ou: people
dn: ou=groups,dc=localnet,dc=lan
objectClass: top
objectClass: organizationalUnit
ou: groups
dn: uid=joe,ou=people,dc=localnet,dc=lan
objectClass: account
objectClass: posixAccount
cn: joe
uid: joe
uidNumber: 10001
gidNumber: 2000
homeDirectory: /home/joe
loginShell: /bin/sh
gecos: joe
description: joe
ในฝั่งไคลเอ็นต์ฉันได้กำหนดค่า libnss-ldap และ nsswitch.conf ดังนี้
passwd: files ldap
group: files ldap
shadow: files ldap
ดังนั้น id คำสั่ง unix บนไคลเอ็นต์ (id joe) จะส่งคืน uid / gid ดังนั้นผู้ใช้จึงเป็นที่รู้จักโดย ldap
แต่หลังจากผ่านไปหลายชั่วโมงรอบ google ฉันไม่สามารถตั้งค่าการรับรองความถูกต้องบนไคลเอนต์ด้วย ssh
ฉันมีบรรทัดเหล่านี้ที่ /etc/pam.d/commun-account, community-auth และรหัสผ่านชุมชน
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure
และสิ่งเหล่านี้ใน /etc/pam.d/ssh
auth sufficient /lib/security/pam_ldap.so no_warn
auth required pam_unix.so no_warn try_first_pass
account required /lib/security/pam_ldap.so no_warn ignore_authinfo_unavail ignore_unknown_user
account required pam_unix.so
ฉันมี usePam = yes บน /etc/ssh/sshd.conf
นี่คือผลลัพธ์ของ auth.log ที่ไคลเอ็นต์:
==> /var/log/auth.log <==
Dec 7 17:39:06 versionning sshd[3898]: pam_ldap: error trying to bind (Invalid credentials)
Dec 7 17:39:06 versionning sshd[3898]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=xxx.kimsufi.com user=joe
Dec 7 17:39:08 versionning sshd[3898]: Failed password for joe from a.b.c.d port 58191 ssh2
บนเซิร์ฟเวอร์: ==> / var / log / syslog <== 7 ธันวาคม 16:42:43 ldap slapd [963]: <= bdb_equality_candidates: (uid) ไม่ได้จัดทำดัชนี
และด้วย tshark
LDAP bindResponse(1) invalidCredentials
ฉันไม่เข้าใจว่าฉันต้องกำหนดค่ารหัสผ่านของโจวที่ไหนและอย่างไร ไม่ได้อยู่ในบัญชียูนิกซ์ท้องถิ่นของลูกค้าดังนั้นบนเซิร์ฟเวอร์; ฉันไม่รู้จะทำยังไงดี
uid=joe,ou=people,dc=localnet,dc=lan
ไม่มีuserPassword
แอตทริบิวต์หรือ ACL ของเซิร์ฟเวอร์ LDAP ทำให้คุณไม่เห็น