1、背景
因主机安全扫描的原因,Centos默认安装的是OpenSSH_7.4p1,为了解决安全漏洞需要升级OpenSSH版本。
升级方式如下:
1、通过下载OpenSSH源码编译安装;
2、预先在同一个操作系统环境制作RPM安装包,可以通过RPM安装包执行安装程序。
当有多台主机需要整改的时候,通过RPM安装包通过脚本批量安装可以较大提升效率。
2、安装步骤
通过自行编译RPM安装包,可以在不同主机上快速部署新版OpenSSH的新版本。
1、备份配置
[root@localhost ~]# cp -r -a /etc/ssh/ /etc/ssh.bak/
[root@localhost ~]# cp -r -a /etc/pam.d/ /etc/pam.d.bak/
2、执行更新操作
[root@localhost ~]# unzip openssh-9.3p1.zip
[root@localhost ~]# rpm -Uvh openssh-*.rpm
3、恢复sshd备份的配置
[root@localhost ~]# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
#注意检查UsePAM yes,如果不是需要手动调整下
#也可以用备份的/etc/ssh.bak/sshd_config替代
4、恢复pam.d/sshd备份的配置
[root@localhost]# vi /etc/pam.d/sshd
可以使用备份的/etc/pam.d.bak/sshd覆盖,也可以直接把以下内容替换。(pam.d/sshd是解决密码正确但是ssh登录不进去的问题)
将下列内容拷贝进去:
#%PAM-1.0
auth required pam_sepermit.so
auth substack password-auth
auth include postlogin
# Used with polkit to reauthorize users in remote sessions
-auth optional pam_reauthorize.so prepare
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 required pam_namespace.so
session optional pam_keyinit.so force revoke
session include password-auth
session include postlogin
# Used with polkit to reauthorize users in remote sessions
-session optional pam_reauthorize.so prepare
5、删除ssh密钥
[root@localhost ~]# rm -rf /etc/ssh/ssh_host_*
#如果发现dsa密钥缺了
[root@localhost ~]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
6、重启sshd服务
# 查看状态
[root@localhost ~]# systemctl status sshd
# 重启sshd
[root@localhost ~]# systemctl restart sshd
# 再查看sshd状态
[root@localhost ~]# systemctl status sshd
附上基于centos7编译的openssh9.3的安装包,使用x11-ssh-askpass让openssh不在依赖openssl1.1.1。
地址:https://download.csdn.net/download/enchanterzj/87746629?spm=1001.2014.3001.5503