Redhat 7.3升级openssh8.0攻略(史上最全)兼再次升级至8.2

本文详细介绍了在Redhat 7.3环境下,从本地虚拟机挂载光盘开始,逐步离线安装telnet和xinetd服务,关闭防火墙,以及如何升级openssh、zlib库和openssl至最新版本的全过程。包括解决升级过程中遇到的各种问题,如perl包、pam-devel包缺失等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明

Redhat 7.3自带的ssh版本:

  • OpenSSH_6.6.1p1
  • OpenSSL 1.0.1e-fips
  • zlib-1.2.7-17.el7.x86_64
    这些步骤都是在虚拟机上模拟实现的(同时在生产环境也进行过验证)

查看原版本

在这里插入图片描述

虚拟机挂载光盘

在这里插入图片描述
按照上面的设置完成后,输入命令

mkdir /mnt/cdrom
mount -o loop /dev/cdrom /mnt/cdrom/

挂载完毕

本地安装telnet和xinetd

为了防止卸载openssh后远程连接不上,本地离线安装telnet,方便调试

cd /mnt/cdrom/
find -name telnet*
rpm -ivh ./Packages/telnet-0.17-60.el7.x86_64.rpm
rpm -ivh ./Packages/telnet-server-0.17-60.el7.x86_64.rpm

find -name xinetd*
rpm -ivh ./Packages/xinetd-2.3.15-13.el7.x86_64.rpm

安装完毕后,检查是否安装成功:

rpm -qa | grep telnet
rpm -qa | grep xinetd

关闭防火墙

systemctl status firewalld //查看防火墙状态
systemctl disable firewalld//永久关闭防火墙
systemctl is-enabled firewalld //查看防火墙是否开机启动
systemctl enable firewalld 重启防火墙

启动telnet

进入到/etc/xinetd.d/文件中

vim telnet
在文件中输入:
# default: yes
# description: The telnet server servestelnet sessions; it uses \
# unencrypted username/password pairs for authentication. service telnet

 {
   flags           = REUSE
   socket_type     = stream
   wait            = no
   user            = root
   server          =/usr/sbin/in.telnetd
   log_on_failure  += USERID
   disable         = no 
  }

启动

systemctl start xinetd.service //启动
ps -ef | grep xinetd //查看启动是否成功
systemctl enable xinetd.service //保证开机后

测试下是否成功开启

telnet 127.0.0.1 22

在这里插入图片描述

升级openssh

1 先配置环境

# 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

2 解压

tar -zxvf openssh-8.0p1.tar.gz
cd openssh-8.0p1

3 编译

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

然后报错了
在这里插入图片描述
检查zlib.h包
所以我们需要安装zlib库

升级zlib库

tar -zxvf zlib-1.2.11.tar.gz  //解压
cd zlib-1.2.11 //进入文件夹
./configure --prefix=/usr //环境测试
make //编译
rpm -e --nodeps zlib //卸载以前的zlib
make install //安装

安装完成之后,进行共享库注册

# ln -s  /usr/lib/libz.so.1 libz.so.1.2.11
# ln -s  /usr/lib/libz.so libz.so.1.2.11
# ln -s  /usr/lib/libz.so.1 /lib/libz.so.1
# ldconfig

安装完成之后,我们再次环境测试下openssh

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

然后发现又报错
在这里插入图片描述
这里提示我们需要升级openssl

升级openssl

备份openssl库

# find / -name openssl
# mv /usr/bin/openssl /usr/bin/openssl.old
# mv /usr/lib64/openssl/ /usr/lib64/openssl.old
# mv /etc/pki/ca-trust/extracted/openssl /etc/pki/ca-trust/extracted/openssl.old
其中两个库必须要提前备份,因为新版本的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

备份完成后,升级

# cd openssl-1.0.2o/
#必须加上--shared,否则编译时会找不到新安装的openssl的库而报错
./config --prefix=/usr --openssldir=/etc/ssl --shared zlib
# make
# make test                            #必须执行这一步结果为pass才能继续,否则即使安装完成,ssh也无法使用
# make install
# openssl version -a                   #查看是否升级成功

但是在make test的时候报错
在这里插入图片描述
这里好像是perl包的问题:
在这里,出现了循环依赖,所以,所有包要一起安装:

rpm -ivh ./Packages/perl-devel-5.16.3-291.el7.x86_64.rpm ./Packages/perl-ExtUtils-Install-1.58-291.el7.noarch.rpm ./Packages/perl-ExtUtils-MakeMaker-6.68-3.el7.noarch.rpm ./Packages/perl-ExtUtils-ParseXS-3.18-2.el7.noarch.rpm ./Packages/perl-ExtUtils-Manifest-1.61-244.el7.noarch.rpm ./Packages/perl-Test-Harness-3.28-3.el7.noarch.rpm ./Packages/systemtap-sdt-devel-3.0-7.el7.x86_64.rpm ./Packages/pyparsing-1.5.6-9.el7.noarch.rpm

在这里插入图片描述
然后在openssl里执行make test,又报错
在这里插入图片描述
这里好像是perl-Test-Simple包的问题,装一下就可以了
在这里插入图片描述
然后在openssl里面test一下,就可以了
在这里插入图片描述
然后make install吧。
安装完成后,查看下版本:

openssl version -a

然后在编译下测试openssh
然后,又报错
在这里插入图片描述
查了下,是pam-devel包的问题,同理,安装下
在这里插入图片描述
然后就编译通过了
然后

make
make install

安装完成之后,配置环境变量

# 在openssh编译目录执行如下命令
# install -v -m755    contrib/ssh-copy-id /usr/bin
# install -v -m644    contrib/ssh-copy-id.1 /usr/share/man/man1
# install -v -m755 -d /usr/share/doc/openssh-7.7p1
# install -v -m644    INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.7p1
# ssh -V              #验证是否升级成功

然后升级成功
在这里插入图片描述

升级到最新版(目前版本是8.2)

在当前版本上只需要执行以下语句即可

# tar -zxvf openssh-8.2p1.tar.gz
# cd openssh-8.2p1
# ./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
# ssh -V // 查看版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李卓书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值