我对 Linux 还很陌生,从未使用过 PAM 做过任何事情,所以我在不同的虚拟机上安装了 OpenVPN 和 PrivacyIdea。 OpenVPN 工作正常,直到我想连接到 PrivacyIdea 进行身份验证。
我也在尝试为 ssh 登录实现相同的功能。但对于 OpenVPN 来说很有男子气概
在 openvpn server.conf 中我添加了这一行
plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so openvpn
从https://github.com/privacyidea/privacyidea-pam/releases/tag/v1.0.0下载pam到/usr/lib64/security
配置
/etc/pam.d/openvpn
图片:/etch/pamd.d/openvpn
我改变了我的privacyidea服务器的url并且没有触及其他想法。
当 pam 被调用或 pam 如何工作时,我不确定我是否明白这一点 pam 的journalctl 日志
我尝试了
ldd
命令并得到了以下结果:
ldd结果
我什至没有尝试在 ssh 中实现这一点,因为我什至无法在 openvpn 中实现它
我尝试从源代码进行编译,但由于没有卷曲,所以没有走到这一步。 我尝试了多个版本的 ubuntu、debian 和 rockylinux,但没有成功。 我什至现在也不去哪里寻找解决方案了
我在这里没有看到任何问题,所以我将留下有关 PAM 日志和 ldd 输出中的错误的评论。
这些错误(未定义的符号)意味着链接器找不到
pam_get_user
(和其他)函数。这些函数位于 libpam.so
库中,在我的系统上,该库位于 /lib/libpam.so
中。最有可能的是这个库没有安装在你的系统中或者链接器找不到它来加载未定义的函数find /lib* /usr/lib* -name 'libpam.so'
之类的东西找到它。如果您的系统上已安装此库,请创建该库到默认搜索路径的软链接。您可以在 /etc/ld.so.conf
或该文件中包含的文件中找到这些路径(默认情况下是来自 /etc/ld.so.conf.d/*conf
或/和 /usr/lib/ld.so.conf.d/*conf
的文件)。一旦找到放置库的目录 - 使用 ln -s /full/path/to/current/libpam.so /full/path/found/in/ld.so.conf/libpam.so
ldd
是否拥有该库所需的所有依赖项。如果您有一些未定义的符号 - 在谷歌中查找它的名称,找到适合您操作系统的包含此库的软件包并通过软件包管理器安装 t