目前,我正在服务器上配置 LDAP 客户端进行用户身份验证。仅允许 SSH 密钥身份验证(不允许密码身份验证)。
我的 SSH 配置(/etc/ssh/sshd_config)
PermitRootLogin no
AuthorizedKeysCommand /path/to/getsshkey.sh
AuthorizedKeysCommandUser root
PasswordAuthentication no
我的其他配置文件:
我已经添加了以下行/etc/pam.d/common-auth
auth required pam_access.so
我添加了以下行sshd 配置文件
account required pam_access.so
我添加了以下行/etc/security/access.conf
-: ALL EXCEPT root (group1) (group2): ALL except LOCAL
我还配置了所有这些文件(/etc/ldap.conf、/etc/nsswitch.conf、/etc/pam.d/common-session)
举个例子用户名1属于组1
当我执行此命令时
ssh -i private.pem 用户名1@ip_地址
我在服务器上的 auth.log 中收到以下错误
Access denied for user username1 by PAM account configuration [preauth]
为什么访问被拒绝?
请帮我
答案1
我个人会使用nss_base_<map>
指令,因为它们更灵活,并且可以与 pam 过滤器一起使用。但是,既然您已经走了这么远,这里有一个很好的方法来查明您的问题:
首先使用以下命令验证您的 LDAP 信息
$ id
$ id YOURUSERNAME (will not show additional groups)
$ getent passwd
$ getent shadow
$ getent group
接下来检查你的 pam 过滤器配置,/etc/ldap.conf
并确保主机名匹配
查看LDAP文档以获取更多信息。
答案2
更改 DNS 名称或在自定义中设置 DNS 名称。登录客户端计算机更改主机名 hostnamectl 设置主机名。