我正在测试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 客户端模块(通常为ldap
或sss
或winbind
),以及 AD/LDAP 客户端守护程序本身。这是一个系统范围的问题,并不局限于 OpenSSH。