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-*.rpm3、恢复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 prepare5、删除ssh密钥
[root@localhost ~]# rm -rf /etc/ssh/ssh_host_* #如果发现dsa密钥缺了 [root@localhost ~]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key6、重启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