离线升级OpenSSH到最新版
方法一:找一台完全相同的服务器,仅下载编译所需软件包,传输至无网络服务器安装编译环境后升级openssh
方法二:在版本相同,架构相同的有网的服务器上,编译好二进制包后,传输到无网络服务器替换二进制包
1、下载openssh源码包
https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
2、编译
./configure --prefix=/usr/local/openssh [--sysconfdir=/etc/ssh] --with-md5-passwords --with-pam --with-zlib --with-tcp-wrappers [--with-ssl-dir=/usr/local/openssl] --with-ssl --without-hardening
参数解析与默认值对比:
–prefix=/usr/local/openssh
作用:指定 OpenSSH 的安装根目录。编译后的二进制文件、库、配置文件等会安装在此目录的子文件夹(如 bin、lib、etc 等)。
默认值:–prefix=/usr/local,若不指定,OpenSSH 默认安装到 /usr/local 下,例如:
可执行文件:/usr/local/bin/ssh
配置文件:/usr/local/etc/ssh/sshd_config
–sysconfdir=/etc/ssh
作用:指定配置文件(如 sshd_config、ssh_config)的安装目录。
默认值:–sysconfdir=$prefix/etc(即 /usr/local/openssh/etc,因为 prefix 被设置为 /usr/local/openssh)。
–with-md5-passwords
作用:启用MD5密码支持。默认可能禁用,因为MD5不安全。如果用户需要支持旧系统或特定配置,可能需要启用,否则不必。
–with-pam
作用:启用PAM支持。如果系统使用PAM进行身份验证,可能需要启用。configure脚本可能自动检测系统是否安装了PAM开发包,如果已安装,默认启用,否则禁用。如果用户需要确保启用,即使系统有PAM但自动检测失败,可能需要显式指定。
–with-zlib
作用:启用zlib压缩支持。OpenSSH可能默认启用,如果zlib已安装,因此可能不需要显式指定,除非需要指定路径或确保启用。
–with-ssl
作用:指定使用SSL库,如OpenSSL。如果软件需要SSL/TLS功能(如SSH使用加密),则必须存在SSL库。configure脚本可能默认查找系统安装的OpenSSL,如果找到则自动启用,否则报错。如果用户安装了自定义路径的OpenSSL,则需要–with-ssl=/path。
–with-tcp-wrappers
作用:启用TCP Wrappers支持。这取决于用户是否需要使用hosts.allow/deny来控制访问,默认可能不启用,因此如果需要此功能,需显式指定。
–without-hardening
作用:禁用安全加固选项。默认可能启用某些加固措施,如栈保护等。禁用可能降低安全性,因此除非必要,不建议使用,故非必须。
3、打包传输至无网络服务器,ldd查看依赖是否缺失,如果不缺失,直接替换二进制包
①先打成tar.gz包,然后上传到需要升级的服务器内并解压到/usr/local/openssh下
tar -czvf openssh.tar.gz /usr/local/openssh
②ldd查看依赖库情况
ldd /usr/local/openssh/bin/ssh
ldd /usr/local/openssh/sbin/sshd
③替换二进制文件
ln -sv /usr/local/openssh/bin/ssh /usr/bin/ssh
ln -sv /usr/local/openssh/sbin/sshd /usr/sbin/sshd