昨天,我设置了一个 OpenLDAP 服务器并尝试将其配置为对 SSH 有用。遵循 DigitalOcean 的这两个指南:https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-a-basic-ldap-server-on-an-ubuntu-12-04-vps和https://www.digitalocean.com/community/tutorials/how-to-authenticate-client-computers-using-ldap-on-an-ubuntu-12-04-vps
话虽这么说,从昨天晚上开始,我在通过 SSH 进行身份验证时遇到了很多问题。早上效果很好,但一整天都效果不佳,我不知道为什么。我已将 Linux 虚拟机恢复到之前的快照,以便我可以尝试再次进行所有设置,但仍然无法启动。
基本上,当我运行 slapd -d 1 时,似乎没有任何突出的东西表明出现了问题。但是,当我尝试通过 SSH 连接到本地机器(托管 OpenLDAP 服务器)时,我在 /var/log/auth.log 文件中看到以下内容:
Dec 4 10:03:46 mybox sshd[17741]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=localhost user=root
Dec 4 10:03:49 mybox sshd[17741]: Failed password for root from 127.0.0.1 port 45071 ssh2
我只能使用存储在 SSH 服务器上的凭据进行 SSH,并且不能通过 LDAP 进行身份验证。我可以通过 ldapsearch 使用 LDAP 登录,没有任何问题,所以我不认为问题出在 LDAP 上。
有人可以指出我正确的方向吗?
编辑:在朋友(不是我的东西)的帮助下得到了一些东西。这是简单使用的两个文件:
file.ldif(与 ldapadd 一起使用)
version: 1
dn: dc=dolgen,dc=net
objectClass: top
objectClass: dcObject
objectClass: organization
dc: dolgen
o: Some Org
description: A sample domain
dn: ou=people,dc=dolgen,dc=net
objectClass: top
objectClass: organizationalUnit
ou: people
dn: cn=Bob Anderson,ou=people,dc=dolgen,dc=net
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: Bob Anderson
sn: Anderson
uid: test
# the userpassword is set to the SHA1 of 'testtesttest'
userPassword: {SSHA}ih08rDcGRC+S5ol888SZG5YUjOX1oVVK
description: This is Bob
uidNumber: 2000
gidNumber: 1100
homeDirectory: /
loginShell: /bin/sh
slapd配置文件
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/nis.schema
pidfile /tmp/slapd.pid
argsfile /tmp/slapd.args
TLSCertificateFile /tmp/ldap.pem
TLSCertificateKeyFile /tmp/ldap.key
moduleload back_hdb.la
database hdb
suffix "dc=dolgen,dc=net"
rootdn "cn=Manager,dc=dolgen,dc=net"
# password is 'testtesttest'
rootpw {SSHA}ih08rDcGRC+S5ol888SZG5YUjOX1oVVK
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory /tmp/openldap-data
# Indices to maintain
index objectClass eq
答案1
检查/etc/ssh/sshd_config是否有“UsePAM yes”。它基本上启用了 OpenLDAP 所需的 PAM 身份验证