首先,我将简要解释一下我的架构
Openldap Server:安装了openldap的Ubuntu 14.04机器 . 我按照这篇文章https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-a-basic-ldap-server-on-an-ubuntu-12-04-vps我为每个posix帐户添加了sshpublickey的模式
OpenLDAP客户端:安装了libpam-ldap nscd的Ubuntu 14.04 . 我再次关注数字海洋链接 . https://www.digitalocean.com/community/tutorials/how-to-authenticate-client-computers-using-ldap-on-an-ubuntu-12-04-vps
我更改了OpenLDAP客户端计算机上的sshd_config文件并提供了AuthorizedKeysCommand / my / script,它查询ldap服务器并获取sshkey,然后我有一个基于密钥的ssh身份验证 .
到目前为止这个工作正常 . 我还有一个ubuntu用户,它是本地用户,不受LDAP管理 .
现在当我在Openldap Server机器上停止slapd守护进程时,我在客户端机器上作为ubuntu用户的活动ssh会话挂起(无法重启任何服务或运行ls或cat等基本命令) . 即使我尝试以不受LDAP管理的ubuntu用户身份登录到客户端计算机,它也会失败(它成功进行身份验证但无法获取环境变量并打开交互式会话)
摘录自ssh -v ubuntu @ IP
debug1:验证成功(publickey) .
认证为54.200.221.217([54.200.221.217]:22) .
debug1:channel 0:new [client-session]
debug1:请求no-more-sessions@openssh.com
debug1:进入交互式会话 .
它停留在那里然后超时 .
这背后的原因是什么?我的建筑也有任何缺陷 . 我不想要基于密码的ssh,因为它很容易被黑客攻击 .
1 回答
原因是你停止了
slapd
,当然,治愈不是这样做的 . 它应该一直运行 .