千家信息网

Linux操作系统如何升级openssh

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这期内容当中小编将会给大家带来有关Linux操作系统如何升级openssh,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。导语Redhat企业级系统的6.9版自带SS
千家信息网最后更新 2026年11月01日Linux操作系统如何升级openssh

这期内容当中小编将会给大家带来有关Linux操作系统如何升级openssh,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

导语

Redhat企业级系统的6.9版自带SSH版本为OpenSSH_5.3p1, 基于审计和安全性需求,建议将其升级到最新的OpenSSH版本,当前官网最新版本为7.4p1. 本文档将详细介绍OpenSSH升级的完整步骤。需要说明的是,升级过程中虽然涉及zlib、openssl和openssh的卸载,但是并不会导致当前的ssh远程连接会话断开,因此是可以将整个升级过程写成自动化脚本以进行自动批量部署的。

步骤

1、准备工作

1.1、下载相关软件包

OpenSSH需要依赖ZLIB和OpenSSL,因此需要从官网下载三者的源码包。需要注意的是:OpenSSH最新版7.4p1依赖的OpenSSL版本为1.0.2k,而不是其最新版1.1.0e(使用此版会升级失败),ZLIB可以使用最新版1.2.11,同时redhat6.9自带的zlib版本为1.2.3,也可不进行升级(建议zlib还是使用原有版本1.2.3,升级正常且不会有其他各种小问题)。 三者源码下载地址:

http://www.zlib.net/

http://www.openssl.org/

http://www.openssh.org/

1.2、查看系统当前软件版本

# rpm -q zlib

# openssl version

# ssh -V

1.3、配置本地yum源

因安装相关工具和编译源码需要先安装部分软件包,因此需要先配置好本地yum源(如有远程yum源更好),配置方法如下:

A、将操作系统镜像上传到服务器中,进行挂载

# mount -o loop /soft/iso/OEL6.9.iso /yum #此处挂载目录可自行指定

如果需要在系统启动时自动挂载,可以把上面这个命令加入/etc/rc.d/rc.local文件中

B、配置yum源文件

# cd /etc/yum.repos.d

# rm -f * #删除当前所有yum源文件

# gedit local.repo #加入如下内容

[Redhat6.9]

name=rhel6.9

baseurl=file:///yum

enabled=1

gpgcheck=0

1.4、安装编译所需工具包

# yum -y install gcc pam-devel zlib-devel

1.5关闭iptable和selinux(注意,必须关闭,否则升级后重启操作系统后不能使用xftp和secureCRT)

service iptables stop #关闭防火墙

chkconfig iptables off #设置防火墙开机不启动

chkconfig xinetd on #设置telnet服务开机启动

getenforce #查看selinux状态
setenforce 0 #
设置selinux为关闭

为防止OpenSSH升级后通过远程终端无法连接机器,建议将其关闭,方法如下:

vi /etc/selinux/config
将SELINUX=enforcing修改为SELINUX=disabled

2、正式升级

2.1、升级OpenSSL

官方升级文档:http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/openssl.html

A、备份当前openssl

# find / -name openssl

/usr/lib64/openssl

/usr/bin/openssl

/etc/pki/ca-trust/extracted/openssl

# mv /usr/lib64/openssl /usr/lib64/openssl.old

# mv /usr/bin/openssl /usr/bin/openssl.old

# mv /etc/pki/ca-trust/extracted/openssl /etc/pki/ca-trust/extracted/openssl.old

如下两个库文件必须先备份,因系统内部分工具(如yum、wget等)依赖此库,而新版OpenSSL不包含这两个库

# cp /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.10.old

# cp /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.10.old

B、卸载当前openssl

# rpm -qa | grep openssl

openssl-1.0.1e-42.el6.x86_64

# rpm -e --nodeps openssl-1.0.1e-42.el6.x86_64

# rpm -qa | grep openssl
或者直接执行此命令:rpm -qa |grep openssl|xargs -i rpm -e --nodeps {}

C、解压openssl_1.0.2k源码并编译安装

# tar -zxvf openssl-1.0.2k.tar.gz

# cd openssl-1.0.2k

# ./config --prefix=/usr --openssldir=/etc/ssl --shared zlib #必须加上--shared,否则编译时会找不到新安装的openssl的库而报错

# make

# make test #必须执行这一步结果为pass才能继续,否则即使安装完成,ssh也无法使用

# make install

# openssl version -a #查看是否升级成功

D、恢复共享库

由于OpenSSL_1.0.2k不提供libcrypto.so.10和libssl.so.10这两个库,而yum、wget等工具又依赖此库,因此需要将先前备份的这两个库进行恢复,其他的可视情况考虑是否恢复。(如果没有安装最新的zlib这个步骤可以跳过)

# mv /usr/lib64/libcrypto.so.10.old /usr/lib64/libcrypto.so.10

# mv /usr/lib64/libssl.so.10.old /usr/lib64/libssl.so.10

2.2、升级OpenSSH

官方升级文档:http://www.linuxfromscratch.org/blfs/view/svn/postlfs/openssh.html

A、备份当前openssh

# mv /etc/ssh /etc/ssh.old

B、卸载当前openssh

# rpm -qa | grep openssh

openssh-clients-5.3p1-111.el6.x86_64

openssh-server-5.3p1-111.el6.x86_64

openssh-5.3p1-111.el6.x86_64

openssh-askpass-5.3p1-111.el6.x86_64

# rpm -e --nodeps openssh-5.3p1-111.el6.x86_64

# rpm -e --nodeps openssh-server-5.3p1-111.el6.x86_64

# rpm -e --nodeps openssh-clients-5.3p1-111.el6.x86_64

# rpm -e --nodeps openssh-askpass-5.3p1-111.el6.x86_64

# rpm -qa | grep openssh
或者直接执行此命令:rpm -qa |grep openssh|xargs -i rpm -e --nodeps {}

C、openssh安装前环境配置

# install -v -m700 -d /var/lib/sshd

# chown -v root:sys /var/lib/sshd

# groupadd -g 50 sshd

# useradd -c 'sshd PrivSep' -d /var/lib/sshd -g sshd -s /bin/false -u 50 sshd

D、解压openssh_7.4p1源码并编译安装

# tar -zxvf openssh-7.4p1.tar.gz

# cd openssh-7.4p1

# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd

# make

# make install

E、openssh安装后环境配置(本步骤目前看可以直接跳过,没有影响)

# 在openssh编译目录执行如下命令
# install -v -m 755 contrib/ssh-copy-id /usr/bin

# install -v -m 644 contrib/ssh-copy-id.1 /usr/share/man/man1

# install -v -m 755 -d /usr/share/doc/openssh-7.4p1

# install -v -m 644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.4p1
# ssh -V #
验证是否升级成功

F、启用OpenSSH服务

# 在openssh编译目录执行如下目录
# mv /etc/init.d/sshd /etc/init.d/sshd.old

# cp -p contrib/redhat/sshd.init /etc/init.d/sshd

# chmod +x /etc/init.d/sshd

备份配置文件

# mv /etc/ssh/ssh_config /etc/ssh/ssh_config_old

# mv /etc/ssh/sshd_config /etc/ssh/sshd_config_old

# cp ssh_config /etc/ssh/ssh_config

# cp sshd_config /etc/ssh/sshd_config

修改配置文件

# gedit /etc/ssh/sshd_config

加入以下内容

PermitRootLogin yes

设置和启动sshd服务

# chkconfig --add sshd

# chkconfig sshd on

# chkconfig --list sshd

# service sshd restart
注意:如果升级操作一直是在ssh远程会话中进行的,上述sshd服务重启命令可能导致会话断开并无法使用ssh再行登入(即ssh未能成功重启),此时需要通过telnet登入再执行sshd服务重启命令。

3、善后工作

新开启远程终端以ssh [ip]登录系统,确认一切正常升级成功后,只需关闭telnet服务以保证系统安全性即可。

# mv /etc/securetty.old /etc/securetty

# chkconfig xinetd off

# service xinetd stop

如有必要,可重新开启防火墙

# service iptables start

# chkconfig iptables on

如需还原之前的ssh配置信息,可直接删除升级后的配置信息,恢复备份。

# rm -rf /etc/ssh

# mv /etc/ssh.old /etc/ssh

上述就是小编为大家分享的Linux操作系统如何升级openssh了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

升级 系统 配置 版本 服务 编译 命令 备份 源码 操作系统 成功 两个 内容 工具 步骤 目录 建议 文件 最新版 软件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 涨乐互联网科技 科技互联网公司装修 科技企业和互联网企业 北京互联网科技有限公司 新浪科技互联网 伴你行互联网科技有限公司 互联网科技创新企业排名 衡水科技产业互联网平台 北京大学互联网科技怎么样 崇明区互联网教育科技诚信经营 杭州壁岐互联网科技有限公司 互联网科技扶贫时间 企晟互联网信息科技有限公司 明优互联网科技有限公司 中科明德北京互联网科技 怎样加入科技互联网 上海同邻互联网科技有限公司规模 互联网金融金融科技 互联网企业和网络科技有限公司 知域互联网科技有限公司官网 蓝思科技飞鸽互联网 互联网巨头科技公司 广州互联网科技公司 多迪互联网科技有限公司 互联网科技人工智能实验室 中国互联网公司排名锤子科技 上海京穆互联网科技有限公司 银行科技岗属于互联网吗 互联网科技机房 互联网大会出现的黑科技
0