我正在为我的学校开发网站.在那所学校,我们通过LDAP对用户进行身份验证,因此有一个想法是通过学校网站进行相同的操作.在那个网站上,一切都运行良好,但在开发过程中,我经常需要测试这种解决方案是否有效.为了不经常提交我的更改,我想在我的本地计算机上测试此站点,但是为了与LDAP连接,我想使用ssh隧道.在学校网络中,我们有一个服务器通过巫婆我们正在学校网络内部连接.它的地址是phoenix.lo5.bielsko.pl.在这个网络中,我们有LDAP服务器,打开389和636端口.它的地址是auth.lo5.我无法通过SSH访问auth.lo5,我只能连接它以获取一些LDAP条目.所以,我试图通过运行来运行SSH隧道:
ssh -L 636:auth.lo5:636 hfaua@phoenix.lo5.bielsko.pl
然后,我在/ etc / hosts中设置auth.lo5指向127.0.0.1.我以这种方式在PHP中连接到LDAP:
ldap_connect('ldaps://auth.lo5',636);
但是我收到错误无法联系LDAP服务器.我想,问题可能在于它的SSH守护进程配置中的phoenix.lo5.bielsko.pl或传递给ldap_connect()函数的参数.你能告诉我,我应该在sshd_config中设置什么,或者在传递给ldap_connect的参数中设置它以使其正常工作?
我在similar thread发布了同样的问题,但没有人回答我的问题.
附:在我的/ etc / ssh / sshd_config中,我有一行AllowTcpForwarding yes
如果我说得对,phoenix.lo5和auth.lo5是两台不同的机器.
如果是这样,您必须创建到ssh机器的隧道,然后将ldap查询发送到正确的机器.
原文链接:https://www.f2er.com/php/136109.html如果是这样,您必须创建到ssh机器的隧道,然后将ldap查询发送到正确的机器.
你的命令:ssh -L 636:auth.lo5:636 hfaua@phoenix.lo5.bielsko.pl是正确的,如果phoenix.lo5.bielsko.pl可以通过DNS或/ etc / hosts解析auth.lo5,如果不是你需要使用其内部IP地址.
此外,如果你想在你的电脑上使用端口636,你需要以超级用户(root或sudo)运行你的命令,否则你需要使用Borealid所说的高端口(1024以上)
隧道启动后,您必须指向localhost来执行查询