我已经在本地主机上安装并配置了 radius 服务器 - 它将身份验证委托给远程 LDAP 服务器。
最初一切看起来不错:我可以通过控制台进行测试:
# export user=skemp
# export pass=xxx
# radtest $user $pass localhost 1812 $secret
Sending Access-Request of id 185 to 127.0.0.1 port 1812
User-Name = "skemp"
User-Password = "xxx"
NAS-IP-Address = 192.168.1.168
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=185,
类似地,我可以使用登录工具做同样的事情:
bash-4.0# /usr/libexec/auth/login_radius -d -s login $user radius
Password: $pass
authorize
但是通过 SSH 进行远程登录会失败,以 root 身份启动的“登录”调用也会失败。查看 /var/log/radiusd.log 时,我没有看到实际的成功/失败日志,而使用上述任一工具时,我都能看到。
相反,sshd 只是记录:
sshd[23938]: Failed publickey for skemp from 192.168.1.9
sshd[23938]: Failed keyboard-interactive for skemp from 192.168.1.9 port 36259 ssh2
sshd[23938]: Failed password for skemp from 192.168.1.9 port 36259 ssh2
在 /etc/login.conf 中我有这个:
# Default allowed authentication styles
auth-defaults:auth=radius:
...
radius:\
:auth=radius:\
:radius-server=localhost:\
:radius-port=1812:\
:radius-timeout=1:\
:radius-retries=5:
答案1
我在配置 OpenBSD 以将身份验证委托给 ldap 服务器时遇到了类似的问题。我唯一能让它工作的方法就是将用户添加到本地数据库,例如
useradd -s /bin/ksh -L ldap 新用户
在你的情况下,它会是这样的
useradd -s /bin/ksh -L radius new_user2
但是,由于您必须为每台使用 ldap 进行身份验证的机器手动创建用户条目,因此这会削弱对集中式 ldap 身份验证服务器的需求。我也没有主意了。