Centos7.6升级OpenSSH9.8p1

目录

简介

升级过程

常见问题

简介

       OpenSSH(OpenBSD Secure Shell)是加拿大OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。

        目前有一台服务器使用了OpenSSH 7.4p1,但该版本的OpenSSH存在OpenSSH代码问题漏洞(CVE-2023-38408)。 OpenSSH 9.3p2之前版本存在安全漏洞,该漏洞源于ssh-agent的PKCS11功能存在安全问题。攻击者可利用该漏洞执行远程代码。

        由于OpenSSH9.8p1要求OpenSSL1.1.1v以上,所以把OpenSSL一并升级。

升级过程

一、下载OpenSSH和OpenSSL对应的版本:

OpenSSH下载路径:

1、OpenBSD提供的多语言下载路径:OpenSSH: Portable Release

2、国内阿里云的下载路径:pub-OpenBSD-OpenSSH-portable安装包下载_开源镜像站-阿里云 (aliyun.com)

OpenSSL下载路径:

1、OpenSSL 1.1.1v:Release OpenSSL 1.1.1v · openssl/openssl · GitHub

2、OpenSSL 3.3.1v:Release OpenSSL 3.3.1 · openssl/openssl · GitHub

 配合OpenSSH 9.8p1的安装只需要升级到OpenSSL 1.1.1v就可以了。

1.1 下载到Linux当中

下载OpenSSH9.8p1到当前目录下
> wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz

下载OpenSSL 1.1.1v到当前目录下
> wget https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1v/openssl-1.1.1v.tar.gz

二、安装前对系统环境的检查

 2.1 安装前的检查

系统版本检查
> cat /etc/redhat-release
OpenSSL版本检查
> openssl version
OpenSSH版本检查
> ssh -V

2.2 安装依赖包

建议都安装一遍防止遗漏,影响后续的编译
> yum -y install gcc pam-devel zlib-devel openssl-devel net-tools

三、安装OpenSSL 1.1.1v

3.1 解压已经下载好的openssl-1.1.1v.tar.gz

将/home/openssl-1.1.1v.tar.gz解压到/home目录下
> tar -zxvf /home/openssl-1.1.1v.tar.gz -C /home/

查看解压后当前目录的情况
> ll /home | grep openssl

进入解压文件的目录
> cd /home/openssl-1.1.1v

3.2 安装配置和编译

查看已安装的OpenSSL版本
> openssl version

配置编译
> ./config --prefix=/opt/openssl # --prefix选项配置安装目录

编译和安装
> make&&make install

# 配置编译、编译和安装要没有error报错才代表成功安装,才可以继续下一步

3.3 更新lib文件

检查所需要的函数库
> ldd /opt/openssl/bin/openssl

添加新装的OpenSSL的库文件路径到ld.so.conf
> echo "/opt/openssl/lib" >> /etc/ld.so.conf

更新系统函数库
> ldconfig --verbose

3.4 更新bin文件

查询命令所在目录
> which openssl
    /usr/bin/openssl # 这是命令文件所在的路径

备份OpenSSL命令原文件
> mv /usr/bin/openssl /usr/bin/openssl.bak

创建软连接 # 以后版本升级只需要安装在/opt/openssl就会自动更新命令文件了
> ln -s /opt/openssl/bin/openssl /usr/bin/openssl

查看现在的OpenSSL版本
> openssl version

四、安装OpenSSH 9.8p1

4.1 解压已经下载好的openssh-9.8p1.tar.gz

将/home/openssh-9.8p1.tar.gz解压到/home目录下
> tar -zxvf /home/openssl-1.1.1v.tar.gz -C /home/

查看解压后当前目录的情况
> ll /home | grep openssh

进入解压文件的目录
> cd /home/openssh-9.8p1

使用for循环,卸载openssh
> for i in $(rpm -qa | grep openssh);do rpm -e $i --nodeps;done

4.2  安装配置和编译

配置编译
> ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/opt/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib --without-hardening
# --prefix选项配置安装目录 --sysconfdir选项配置文件路径 --with-ssl-dir选项openssl的安装路径

编译和安装
> make&&make install

# 配置编译、编译和安装要没有error报错才代表成功安装,才可以继续下一步

4.3  sshd.init脚本的修改

从源码目录下复制sshd.init到/etc/init.d/
> cp /home/openssh-9.8p1/contrib/redhat/sshd.init /etc/init.d/
 
# sshd.init脚本默认的sshd路径为/usr/sbin/sshd,如果编译配置时选择的是这个路径就无需下面的操作
更新sshd安装路径(也可以用vim找到对应的文件进行修改)
> cat -n /etc/init.d/sshd.init | grep SSHD
> sed -i "s/SSHD=\/usr\/sbin\/sshd/SSHD=\/usr\/local\/openssh\/sbin\/sshd/g" /etc/init.d/sshd.init # vim /etc/init.d/sshd.init 打开后修改对应行

# sshd.init脚本默认的ssh-keygen路径为/usr/bin/ssh-keygen,如果编译配置时选择的是这个路径就无需下面的操作
更新ssh-keygen安装路径
> cat -n /etc/init.d/sshd.init | grep ssh-keygen
> sed -i "s#/usr/bin/ssh-keygen -A#/usr/local/openssh/bin/ssh-keygen -A#g" /etc/init.d/sshd.init

4.4 修改配置文件

开启允许X11转发和密码验证
> echo 'X11Forwarding yes' >> /etc/ssh/sshd_config
> echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config 

 4.5 启动服务和设置开机启动

复制新安装的openssh相关命令到系统目录
> cp -arp /usr/local/openssh/bin/* /usr/bin/

启动服务
> /etc/init.d/sshd.init

查看sshd版本验证是否启动成功
> ssh -V

添加开机启动
> chmod +x /etc/rc.d/rc.local
> echo “/etc/init.d/sshd.init start” >> /etc/rc.d/rc.local

常见问题

systemctl无法管理sshd

重新安装openssh-server即可
> yum -y install openssh-server

如果有报错使用该命令查看具体异常原因
> tail -f /var/log/messages
> tail -f /var/log/secure

selinux拦截导致SSH服务器拒绝密码登录

> setenforce 0

 ssh_host_dsa_key生成失败

通常该状况都会在安装时提示error(ignore),这个时候我们应该继续安装,在安装完成后在配置文件中修改为rsa即可
> echo "HostKey /etc/ssh/ssh_host_rsa_key" >> /etc/ssh/sshd_config

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JovaZou

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

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

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

打赏作者

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

抵扣说明:

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

余额充值