本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。
问题描述
使用SSH连接Linux系统的ECS实例时,即便输入了正确的密码,也无法正常登录。该问题出现时,使用管理终端或SSH登录客户端时,可能存在一种方式无法正常登录。同时,secure日志中出现类似如下错误信息。
sshd[1199]: pam_listfile(sshd:auth): Refused user root for service sshd
sshd[1199]: Failed password for root from 192.X.X.1 port 22 ssh2
sshd[1204]: Connection closed by 192.X.X.2
问题原因
PAM模块(pam_listfile.so)相关访问控制策略导致用户登录失败。
解决方案
如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
PAM模块可用于Linux系统的访问控制。要解决此问题,请进行如下配置检查。本文相关Linux配置及说明已在CentOS 6.5 64位操作系统中进行过测试。其它操作系统版本配置可能有所差异,具体情况请参阅相应操作系统官方文档。
登录实例,通过cat等命令查看对应的PAM配置文件,配置文件说明如下。
文件
功能说明
/etc/pam.d/login
控制台(管理终端)对应配置文件
/etc/pam.d/sshd
SSH登录对应配置文件
/etc/pam.d/system-auth
系统全局配置文件
确认存在类似如下配置信息。
auth required pam_listfile.so item=user sense=allow file=/etc/ssh/whitelist onerr=fail
相关策略可以提高服务器的安全性。请用户基于安全性和易用性权衡后,再确定是否需要修改相关配置,在修改之前建议进行文件备份。相关策略参数说明如下。
item:设置访问控制的对象类型,可选值包括tty、user、rhost、ruser、group和Shell。
sense:在配置文件中找到符合条件项目的控制方式。可选值为allow和deny。allow代表白名单方式,而deny代表黑名单方式。
file:用于指定配置文件的全路径名称。
onerr:定义了出现错误时的缺省返回值,比如无法打开配置文件的错误。
使用vi等编辑器,删除策略配置,也可以注释策略配置,如下所示,在策略配置前添加 #。
#auth required pam_listfile.so item=user sense=allow file=/etc/ssh/whitelist onerr=fail
然后重新登录服务器,确认无异常即可。
更多信息
PAM(Pluggable Authentication Modules)是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开。使得系统管理员可以灵活地根据需求,给不同的服务配置不同的认证方式,而无需更改服务程序,同时也便于向系统中添加新的认证手段。
每个启用了PAM模块的应用程序,在
/etc/pam.d
目录中都有对应的同名配置文件。例如,login命令的配置文件是/etc/pam.d/login
,可以在相应配置文件中配置具体的策略。更多关于pam_listfile的信息,请参见pam_listfile。
如果还存在问题,可以参阅通过SSH无法远程登录Linux实例的排查指引,进一步排查分析。
适用于
云服务器ECS