- 👋 Hi, I’m @Huuuui
大家好,这篇为大家介绍二进制方式对OpenSSH版本升级,在生产环境中可用于解决版本升级、漏洞修复等。
@
目录
1、环境
- 系统版本:CentOS 7.6
- OpenSSH、OpenSSL版本:OpenSSH_7.4p1、OpenSSL 1.0.2k-fips
2、安装telnet
由于生产环境中对OpenSSH升级会存在一定风险,导致SSH连不上,所以在升级前可安装telnet服务,在升级失败时可以telnet进行恢复。
2.1、检查是否安装
rpm -qa telnet-server rpm -qa xinetd
2.2、安装telnet包
yum -y install telnet yum -y install xinetd
2.3、启动服务(可不用加入开机启动,根据自己需求来决定)
systemctl start xinetd.service systemctl start telnet.socket
2.4、测试连接
3、升级OpenSSH版本
3.1、安装依赖
yum install wget gcc openssl-devel pam-devel rpm-build
3.2、下载二进制包
- OpenSSH最新版本包
下载地址:OpenSSH阿里云源地址
- OpenSSL包
下载地址:OpenSSL官网
- Zlib包
下载地址:Zlib下载地址
3.3、编译安装Zlib包
# 解压 tar -xvf zlib-1.3.tar.gz cd zlib-1.3/ # 编译安装 ./configure --prefix=/usr/local/zlib make && make install
3.4、编译安装OpenSSL包
# 解压 tar -xvf openssl-1.1.1u.tar.gz # 编译安装 ./config --prefix=/usr --shared make && make install
3.5、编译安装OpenSSH包
# 备份现有SSH cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak cp /usr/bin/sshd /usr/bin/sshd.bak cp /usr/sbin/sshd /usr/sbin/sshd.bak # 解压 tar -xvf openssh-9.4p1.tar.gz # 编译安装 ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib=/usr/local/zlib --with-md5-passwords make && make install
4、版本升级验证
# 重启ssh服务 systemctl restart sshd # 查看版本 ssh -V
5、可能遇到得问题及解决
5.1、编译有报错,可能是没装gcc,请参考3.1安装依赖
5.2、编译OpenSSH时报证书无法加载,可能需要修改权限
解决方式:
chmod 700 /etc/ssh/ssh_host_rsa_key chmod 700 /etc/ssh/ssh_host_ecdsa_key chmod 700 /etc/ssh/ssh_host_ed25519_key
5.3、重启ssh服务,无法启动或者一直重启,可能sshd不兼容systemd造成的
解决方式:
# 在OpenSSH安装包目录下 cp contrib/redhat/sshd.init /etc/init.d/sshd # 移除sshd.service文件 mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak # 重新加载配置 systemctl daemon-reload # 添加开机启动 chkconfig sshd on
结束:OpenSSH版本升级结束,希望文章对大家有所帮助,喜欢的大佬三连支持一下,感谢!