使用管理终端或 实例账号密码远程连接并登录 Linux 实例时,无法成功登录,而且 secure 日志中出现类似以下报错信息:
login: Module is unknown. login: PAM unable to dlopen(/lib/security/pam_limits.so): /lib/security/pam_limits.so: cannot open shared object file: No such file or directory.
原因分析 每个启用 PAM 的应用程序,在 /etc/pam.d 目录中都有对应的同名配置文件。例如,login 命令的配置文件是 /etc/pam.d/login,可以在相应配置文件中配置具体的策略,如下所示:
配置文件 说明 /etc/pam.d/login 管理终端登录的配置文件 /etc/pam.d/sshd SSH 登录的配置文件 /etc/pam.d/system-auth 系统全局配置文件 远程连接登录时,某些启用了 PAM 的应用程序加载模块失败,导致配置了相应策略的登录方式交互失败。这里主要查看 /etc/pam.d/sshd 和 /etc/pam.d/system-auth 路径,管理终端的 /etc/pam.d/login 配置文件出错时,您需要提交工单联系技术支持团队。
解决方法 无法通过实例账号密码登录时 通过管理终端登录 Linux 实例。
执行命令 cat filename 查看 PAM 配置文件,如 cat /etc/pam.d/login 和 cat /etc/pam.d/system-auth。
检查配置文件是否有类似如下配置信息,如,本文检查到 /etc/pam.d/system-auth 配置文件中有如下配置信息。
session required pam_limits.so
执行命令 ll /lib/security/pam_limits.so 检查 pam_limits.so 模块在系统中是否存在。 这一步检查 pam_limits.so 模块是否被错误地放置在 /lib/security 目录下,因为,64 位系统的 Linux 实例的正确路径应该为 /lib64/security。
执行命令 vi filename 修改项目模块 pam_limits.so 的路径为正确路径,其中 filename 为您在第 3 步查看到的配置文件,如本示例中的 vi /etc/pam.d/system-auth。
session required /lib64/security/pam_limits.so # 修改为正确路径 重新登录 Linux 实例。
无法通过管理终端登录时 请提交工单联系阿里云。
参考链接 您可以参阅文档云服务器 ECS Linux SSH 无法登录问题排查指引详细地排查无法 SSH 登录的故障。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。