由于linux上的openssh的版本已太老,服务器要确保安全必须对openssh升级,在selinux开启的情况下openssh升级到9.0后ssh连接有可能提示Access Denied,这种情况下一般是selinux拦截了sshd。最简单直接解决ssh无法连接的方法就是关闭selinux,但是selinux对服务器的安全非常重要,一般情况下不要关闭。那在selinux开启的情况下又怎么处理?

解决方法:先查看系统实时日志,tail -f /var/log/messages,一般有报错提示,“localhost sshd[19802]: error: Could not get shadow information for admin...”,这个要先去/etc/ssh/sshd_config下把UsePAM改为yes,然后到/etc/pam.d/sshd下把内容修改为

auth required pam_sepermit.so

auth include password-auth

account required pam_nologin.so

account include password-auth

password include password-auth

session required pam_selinux.so close

session required pam_loginuid.so

session required pam_selinux.so open env_params

session optional pam_keyinit.so force revoke

session include password-auth

这是因为linux系统中pam_stack.so这个库已经不再使用,需要修改/etc/pam.d/sshd才行。修改完成重启sshd即可。

附上ssh连接成功截图

注:centos6和7都是这么操作,不要往sshd_config更改别的或增加别的配置,会导致重启异常。重启后连接不上如centos6执行命令service sshd restart后连接中断这个是sshd关闭后重启失败,需要到虚拟机中重新启动就可以了。

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: