【CentOS 7.x 从openssh7.4p1 升级到openssh8.8p1】

CentOS 7.x 从openssh7.4p1 升级到openssh8.8p1


前言

提示:
1、针对openssh版本过低导致漏洞的问题的升级
2、建议先阅读-----五、为了防止升级失败,可以在升级之前安装telnet服务,通过Telnet连接服务器进行升级
3、openssh-8.8p1+openssl-1.1.1h+zlib-1.2.12搭配亲测可以升级成功,可以远程。
4、在升级过程中输入的命令,如果弹出文章中没有涉及的错误,请先自行解决后再继续执行后续步骤。

一、升级准备工作

1.1、查看系统版本和 ssh 版本

	cat /etc/redhat-release
	ssh -V

没有升级前的SSH的版本

1.2、需要将openssh升级到最新版本

(有条件的可以)直接yum安装即可
yum install openssh -y
先升级到7.4的版本

1.3、安装需要的依赖包

yum -y install gcc gcc-c++ kernel-devel
在这里插入图片描述

二、安装包准备

2.1、下载安装包(建议直接下载到本地然后拷贝到相应的服务器目录下)

zlib-1.2.12.tar.gz(2022 年 3 月 27 日) 下载地址:http://www.zlib.net/zlib-1.2.12.tar.gz
openssl-1.1.1h.tar.gz(2020 年 9月 22 日) 下载地址:https://www.openssl.org/source/openssl-1.1.1h.tar.gz
其他版本的openssl 有待测试
openssh-8.8p1.tar.gz(2021 年 9月 26 日) 下载地址:http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.8p1.tar.gz

我把文件放到/data/tools没有该目录的自行创建

2.2、解压安装包,我习惯将安装包解压到/usr/local/src下面

tar xf openssh-8.8p1.tar.gz -C /usr/local/src/
tar xf openssl-1.1.1h.tar.gz -C /usr/local/src/
tar xf zlib-1.2.12.tar.gz -C /usr/local/src/
ll /usr/local/src/

在这里插入图片描述

三、安装相应的包

3.1、安装zlib-1.2.12.tar.gz

cd /usr/local/src/zlib-1.2.12/
./configure --prefix=/usr/local/zlib && make -j 4 && make install

等待安装完毕,然后再命令行输入 echo $? 回车
输出0 说明没有问题。

在这里插入图片描述

3.2、安装 openssl-1.1.1h.tar.gz

cd /usr/local/src/openssl-1.1.1h/
./config --prefix=/usr/local/ssl -d shared
出现下图则说明成功了;
在这里插入图片描述
make -j 4 && make install
等待安装完毕,然后在命令行输入 echo $? 回车
输出0 说明没有问题。
echo ‘/usr/local/ssl/lib’ >> /etc/ld.so.conf
ldconfig -v

3.3、安装openssh-8.8p1.tar.gz

1、mv /etc/ssh /etc/ssh.bak   备份原有的ssh文件
2、cd /usr/local/src/openssh-8.8p1/
3、./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl --with-zlib=/usr/local/zlib
4、make -j 4 && make install
等待安装完毕,然后在命令行输入 echo $? 回车 
输出0 说明没有问题。

3.4、sshd_config文件修改

echo “X11Forwarding yes” >> /etc/ssh/sshd_config
echo “X11UseLocalhost no” >> /etc/ssh/sshd_config           
echo “XAuthLocation /usr/bin/xauth” >> /etc/ssh/sshd_config
echo “UseDNS no” >> /etc/ssh/sshd_config
echo ‘PermitRootLogin yes’ >> /etc/ssh/sshd_config
echo ‘PubkeyAuthentication yes’ >> /etc/ssh/sshd_config
echo ‘PasswordAuthentication yes’ >> /etc/ssh/sshd_config

需要添加X11Forwarding yes开启X11转发,调用图形界面,如oracle安装等操作需要图形界面

***必须添加X11UseLocalhost no 和 XAuthLocation /usr/bin/xauth 这两项,否则X11转发不好使

验证X11转发是否好使,xhost + 出现下面的是可以正常使用的
在这里插入图片描述
出现下面的内容是不能正常使用的
在这里插入图片描述
备份 /etc/ssh 原有文件,并将新的配置复制到指定目录

mv /usr/sbin/sshd /usr/sbin/sshd.bak
cp -rf /usr/local/openssh/sbin/sshd /usr/sbin/sshd
mv /usr/bin/ssh /usr/bin/ssh.bak
cp -rf /usr/local/openssh/bin/ssh /usr/bin/ssh 
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
cp -rf /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen

查看版本ssh -V
在这里插入图片描述

四、启动sshd服务

直接systemctl start sshd,启动不起来,报错,但用sshd -t检查也没有啥错误,就提示timeout
在这里插入图片描述问题解决:先停掉sshd服务,将systemctl原服务器删除,使用安装包里自带的sshd.init,复制到/etc/init.d/sshd,重启即可
systemctl stop sshd.service
rm -rf /lib/systemd/system/sshd.service
systemctl daemon-reload
cp /usr/local/src/openssh-8.4p1/contrib/redhat/sshd.init /etc/init.d/sshd
/etc/init.d/sshd restart
systemctl status sshd

启动不起来,可以使用/etc/init.d/sshd restart重启即可
在这里插入图片描述添加开机启动

chkconfig --add sshd

chkconfig --list sshd
在这里插入图片描述

五、为了防止升级失败,可以在升级之前安装telnet服务,通过Telnet连接服务器进行升级

5.1、安装telnet-server以及xinetd

yum install xinetd telnet-server -y
vim /etc/xinetd.d/telnet
	service telnet

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

配置telnet登录的终端类型,在/etc/securetty文件末尾增加一些pts终端,如下

vim /etc/securetty
pts/0
pts/1
pts/2
pts/3

tail -5 /etc/securetty

xvc0
pts/0
pts/1
pts/2
pts/3

systemctl enable xinetd

systemctl enable telnet.socket

systemctl start telnet.socket

systemctl start xinetd

netstat -lntp|grep 23

netstat可能会报错,原因是没有安装net-tools工具包

yum install net-tools -y

再次查看
在这里插入图片描述切换到telnet方式登录,以后的操作都在telnet终端下操作,防止ssh连接意外中断造成升级失败

在这里插入图片描述在这里插入图片描述

5.2、删除Telnet服务

	systemctl disable xinetd.service
	systemctl stop xinetd.service
	systemctl disable telnet.socket
	systemctl stop telnet.socket
	netstat -lntp

卸载yum remove telnet-server xinetd -y

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值