使用 ssh-ldap-pubkey 的 ubuntu 上的公钥认证问题?

使用 ssh-ldap-pubkey 的 ubuntu 上的公钥认证问题?

我正在测试ssh-ldap-公钥,从 LDAP 服务器获取 ssh 密钥。从auth.log,它显示我的用户surfer.example被关闭preauth,甚至没有运行AuthorizedKeysCommand脚本。

Aug 13 12:51:57 ubuntu-bionic sshd[1685]: Invalid user surfer.example from 192.168.35.1 port 58997
Aug 13 12:51:57 ubuntu-bionic sshd[1685]: Connection closed by invalid user surfer.example 192.168.35.1 port 58997 [preauth]
Aug 13 12:52:11 ubuntu-bionic sshd[1687]: Invalid user surfer.example from 192.168.35.1 port 59004
Aug 13 12:52:11 ubuntu-bionic sshd[1687]: Connection closed by invalid user surfer.example 192.168.35.1 port 59004 [preauth]
Aug 13 12:56:40 ubuntu-bionic sshd[1691]: AuthorizedKeysCommand /usr/local/bin/ssh-ldap-pubkey-wrapper vagrant failed, status 1
Aug 13 12:56:40 ubuntu-bionic sshd[1691]: Accepted publickey for vagrant from 10.0.2.2 port 59100 ssh2: RSA SHA256:EjagAW+Wdlac37IGrrLJ3/DA/g8qHCZGPGUCyCEGKTc
Aug 13 12:56:40 ubuntu-bionic sshd[1691]: pam_unix(sshd:session): session opened for user vagrant by (uid=0)

内容包括/etc/ssh/sshd_config

AuthorizedKeysCommand /usr/bin/ssh-ldap-pubkey-wrapper
AuthorizedKeysCommandUser nobody

尝试 ssh 使用的命令是:

$ ssh [email protected]
[email protected]: Permission denied (publickey).

答案1

您的日志消息显示:

8月13日 12:51:57 ubuntu-bionic sshd[1685]:无效的用户 surfer.example来自 192.168.35.1 端口 58997

您还说id <username>返回:

id: ‘surfer.example’: 没有该用户

这意味着这根本不是一个公钥认证问题——问题是根据您的操作系统配置,该帐户完全不存在。OpenSSH sshd 将绝不接受不存在的帐户的登录(因为它不知道要分配什么 UID/GID,使用什么主目录),所以它甚至不会尝试查找其授权密钥。

如果这应该是 Active Directory 帐户,请仔细检查您的/etc/nsswitch.conf配置(它是否在“passwd:”和“group:”行中列出了 AD/LDAP 客户端模块(通常为ldapssswinbind),以及 AD/LDAP 客户端守护程序本身。这是一个系统范围的问题,并不局限于 OpenSSH。

相关内容