说明本文主要讲述将CentOS环境中openssl从1.0.2k升级至3.0.20openssh从7.4p1升级至10.3p1。1. 前期部署准备及说明1.1 相关产品下载地址zlib下载地址https://www.zlib.net/ openssl下载地址https://openssl-library.org/source/ openssh下载地址https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/1.2 相关路径规划相关产品存放目录/apps/scriptsmkdir -p /apps/scripts/1.3 服务器基本信息1.3.1 查看OS版本cat /etc/os-release1.3.2 查看OS架构arch1.3.3 当前ssl版本openssl version1.3.4 当前ssh版本ssh -V1.4 依赖安装yum install -y perl perl-core gcc gcc-c make autoconf automake patch libtool pam-devel1.5 产品下载zlib版本1.3.2openssl版本3.0.20openssh版本10.3sp11.6 相关产品上传将相关产品上传至/apps/scripts目录下2. 升级相关操作2.1 zlib安装2.1.1 解压tar -xf zlib-1.3.2.tar.gz -C /apps/2.1.2 切换目录cd /apps/zlib-1.3.2/2.1.3 配置./configure2.1.4 编译make2.1.5 安装make install2.1.6 配置调整cp zutil.h /usr/local/include/ cp zutil.c /usr/local/include/2.2 openssl升级2.2.1 解压cd /apps/scripts/ tar -xf openssl-3.0.20.tar.gz -C /apps/2.2.2 切换目录cd /apps/openssl-3.0.20/2.2.3 配置./config --prefix/usr/local/openssl2.2.4 编译make2.2.5 安装make install2.2.6 相关调整备份原始opensslmv /usr/bin/openssl /usr/bin/openssl_bak复制新版本openssl到/usr/bin/目录cp /usr/local/openssl/bin/openssl /usr/bin/调整配置文件# 1.查看编译安装目录为lib还是lib64 ls /usr/local/openssl/ # 显示结果如下 bin include lib64 share ssl # 显示为lib64 # 2.查看原始配置文件 cat /etc/ld.so.conf # 显示内容如下 include ld.so.conf.d/*.conf # 3.配置文件调整 echo ‘/usr/local/openssl/lib64/’ /etc/ld.so.conf # 4.再次查看 cat /etc/ld.so.conf # 显示内容如下 include ld.so.conf.d/*.conf /usr/local/openssl/lib64/更新配置文件ldconfig2.2.7 验证openssl version # 已从1.0.2k升级到3.0.20版本2.3 openssh升级2.3.1 解压cd /apps/scripts/ tar -xf openssh-10.3p1.tar.gz -C /apps/2.3.2 切换目录cd /apps/openssl-3.0.20/2.3.3 配置./configure --prefix/usr/local/openssh --with-ssl-dir/usr/local/openssl --sysconfdir/etc/ssh --with-pam --with-gssapi --with-rsa --with-rhosts-allowed --with-zlib --with-md5-passwords2.3.4 编译make2.3.5 安装make install2.3.6 相关调整1.部署版本验证/usr/local/openssh/bin/ssh -V2. 备份原始opensshmv /usr/sbin/sshd /usr/sbin/sshd_bak mv /usr/bin/ssh /usr/bin/ssh_bak mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen_bak复制新版本openssh相关目录cp -rp /usr/local/openssh/sbin/sshd /usr/sbin/sshd cp -rp /usr/local/openssh/bin/ssh /usr/bin/ssh cp -rp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen4. 重启sshd服务systemctl restart sshd # 重启时候报错解决方法见4.常见问题章节3. 升级后版本验证3.1 升级后ssl版本openssl version3.2 升级后ssh版本ssh -V4.常见问题4.1升级openssh后重启sshd服务报错# 执行重启命令时候新开一个命令窗口同步查看相关日志 # 窗口1执行 systemctl restart sshd # 窗口2执行 tail -f /var/log/messages # 显示结果如下 # 报错重点关键字Permissions 0640报错详情如下解决方法# 删除旧证书 rm -f /etc/ssh/ssh_host_* # 重新生成证书 /usr/bin/ssh-keygen -A # 修改生成证书权限 chmod 600 /etc/ssh/ssh_host_* chmod 644 /etc/ssh/*.pub4.2升级openssh后除当前窗口其他窗口无法再进行连接切记通过远程方式连接的shell会话切勿关闭关闭后无法再次连接解决方法vim /etc/ssh/sshd_config # 取消下述配置项前方的#号 Port 22 PermitRootLogin yes详细配置如下Port 22 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_ecdsa_key HostKey /etc/ssh/ssh_host_ed25519_key SyslogFacility AUTHPRIV PermitRootLogin yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication yes ChallengeResponseAuthentication no GSSAPIAuthentication yes GSSAPICleanupCredentials no UsePAM yes X11Forwarding yes AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE AcceptEnv XMODIFIERS Subsystem sftp /usr/libexec/openssh/sftp-server另需注意配置文件/etc/selinux/config下SELINUX参数必须修改为disabled。参数为enforcing时会产生一些比较怪异的问题
CentOS环境下手动升级openssl、openssh
发布时间:2026/5/29 3:57:02
说明本文主要讲述将CentOS环境中openssl从1.0.2k升级至3.0.20openssh从7.4p1升级至10.3p1。1. 前期部署准备及说明1.1 相关产品下载地址zlib下载地址https://www.zlib.net/ openssl下载地址https://openssl-library.org/source/ openssh下载地址https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/1.2 相关路径规划相关产品存放目录/apps/scriptsmkdir -p /apps/scripts/1.3 服务器基本信息1.3.1 查看OS版本cat /etc/os-release1.3.2 查看OS架构arch1.3.3 当前ssl版本openssl version1.3.4 当前ssh版本ssh -V1.4 依赖安装yum install -y perl perl-core gcc gcc-c make autoconf automake patch libtool pam-devel1.5 产品下载zlib版本1.3.2openssl版本3.0.20openssh版本10.3sp11.6 相关产品上传将相关产品上传至/apps/scripts目录下2. 升级相关操作2.1 zlib安装2.1.1 解压tar -xf zlib-1.3.2.tar.gz -C /apps/2.1.2 切换目录cd /apps/zlib-1.3.2/2.1.3 配置./configure2.1.4 编译make2.1.5 安装make install2.1.6 配置调整cp zutil.h /usr/local/include/ cp zutil.c /usr/local/include/2.2 openssl升级2.2.1 解压cd /apps/scripts/ tar -xf openssl-3.0.20.tar.gz -C /apps/2.2.2 切换目录cd /apps/openssl-3.0.20/2.2.3 配置./config --prefix/usr/local/openssl2.2.4 编译make2.2.5 安装make install2.2.6 相关调整备份原始opensslmv /usr/bin/openssl /usr/bin/openssl_bak复制新版本openssl到/usr/bin/目录cp /usr/local/openssl/bin/openssl /usr/bin/调整配置文件# 1.查看编译安装目录为lib还是lib64 ls /usr/local/openssl/ # 显示结果如下 bin include lib64 share ssl # 显示为lib64 # 2.查看原始配置文件 cat /etc/ld.so.conf # 显示内容如下 include ld.so.conf.d/*.conf # 3.配置文件调整 echo ‘/usr/local/openssl/lib64/’ /etc/ld.so.conf # 4.再次查看 cat /etc/ld.so.conf # 显示内容如下 include ld.so.conf.d/*.conf /usr/local/openssl/lib64/更新配置文件ldconfig2.2.7 验证openssl version # 已从1.0.2k升级到3.0.20版本2.3 openssh升级2.3.1 解压cd /apps/scripts/ tar -xf openssh-10.3p1.tar.gz -C /apps/2.3.2 切换目录cd /apps/openssl-3.0.20/2.3.3 配置./configure --prefix/usr/local/openssh --with-ssl-dir/usr/local/openssl --sysconfdir/etc/ssh --with-pam --with-gssapi --with-rsa --with-rhosts-allowed --with-zlib --with-md5-passwords2.3.4 编译make2.3.5 安装make install2.3.6 相关调整1.部署版本验证/usr/local/openssh/bin/ssh -V2. 备份原始opensshmv /usr/sbin/sshd /usr/sbin/sshd_bak mv /usr/bin/ssh /usr/bin/ssh_bak mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen_bak复制新版本openssh相关目录cp -rp /usr/local/openssh/sbin/sshd /usr/sbin/sshd cp -rp /usr/local/openssh/bin/ssh /usr/bin/ssh cp -rp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen4. 重启sshd服务systemctl restart sshd # 重启时候报错解决方法见4.常见问题章节3. 升级后版本验证3.1 升级后ssl版本openssl version3.2 升级后ssh版本ssh -V4.常见问题4.1升级openssh后重启sshd服务报错# 执行重启命令时候新开一个命令窗口同步查看相关日志 # 窗口1执行 systemctl restart sshd # 窗口2执行 tail -f /var/log/messages # 显示结果如下 # 报错重点关键字Permissions 0640报错详情如下解决方法# 删除旧证书 rm -f /etc/ssh/ssh_host_* # 重新生成证书 /usr/bin/ssh-keygen -A # 修改生成证书权限 chmod 600 /etc/ssh/ssh_host_* chmod 644 /etc/ssh/*.pub4.2升级openssh后除当前窗口其他窗口无法再进行连接切记通过远程方式连接的shell会话切勿关闭关闭后无法再次连接解决方法vim /etc/ssh/sshd_config # 取消下述配置项前方的#号 Port 22 PermitRootLogin yes详细配置如下Port 22 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_ecdsa_key HostKey /etc/ssh/ssh_host_ed25519_key SyslogFacility AUTHPRIV PermitRootLogin yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication yes ChallengeResponseAuthentication no GSSAPIAuthentication yes GSSAPICleanupCredentials no UsePAM yes X11Forwarding yes AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE AcceptEnv XMODIFIERS Subsystem sftp /usr/libexec/openssh/sftp-server另需注意配置文件/etc/selinux/config下SELINUX参数必须修改为disabled。参数为enforcing时会产生一些比较怪异的问题