centos7 升级openssh8.6后无法使用密码登录排查方案
一、系统环境
1.查看系统版本 #cat /etc/redhat-release
2.查看ssh版本(升级后) #ssh -V
二、问题描述
Linux centos7 因为安全漏洞问题需要对ssh进行版本升级(升级方案参考:https://cloud.tencent.com/developer/article/1745701),这里不做重复说明。升级完成后发现无法使用客户端软件进行帐号密码登录(前提密码是正确的),提示“Permission denied, please try again.”。
三、问题分析
上述问题的产生原因主要是因为在配置configure openssh有参数 –with-pam,启用了PAM登录认证,因此需要提供一个/etc/pam.d/sshd 控制文件。
四、解决方案
- 修改配置 #vi /etc/ssh/sshd_config
PermitRootLogin yes #允许root帐号远程登录
PasswordAuthentication yes #开启密码认证方式
UsePAM yes #开启UsePAM登录
- 新增PAM控制文件 #vi /etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
auth include password-auth
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session optional pam_keyinit.so force revoke
session include password-auth
-
关于 #setenforce 0 经验证,只要在“UsePAM yes ”配置下不需要更改selinux配置也是可以正常使用密码登录的。
-
重启SSH服务 #systemctl restart sshd
-
查看系统日志 #tail -f /var/log/messages
-
查看sshd运行状态 #systemctl status sshd