获取安装包

通过网盘分享的文件:openssh-openssl-curl_update

链接: https://pan.baidu.com/s/12voImgavVSHZyJIwiqtaNA?pwd=h6uh 提取码: h6uh

--来自百度网盘超级会员v4的分享

安装telnet服务

升级openssh和openssl风险较大,telnet服务可以基于TELNET协议远程登录,在升级openssh之前我们需要安装telnet服务以避免ssh服务起不来导致连接不上机器

yum install telnet-server -y
yum install xinetd -y
systemctl enable xinetd.service
systemctl enable telnet.socket
systemctl start xinetd.service
systemctl start telnet.socket
systemctl status xinetd.service
systemctl status telnet.socket

telnet默认只能普通用户登录,root用户登录需要进行指定哪些终端设备允许 root 用户登录:

tail -n 4 /etc/securetty
pts/0
pts/1
pts/2
pts/3 # pts 是 "pseudo-terminal slave"(伪终端从设备)的缩写,通常用于表示通过 SSH、Telnet 或其他远程连接工具创建的虚拟终端
# 数字 0 到 4 表示具体的终端编号,意味着系统允许 root 用户通过前 4 个伪终端直接登录。

测试登录:

telnet 8.159.128.153
Trying 8.159.128.153...
Connected to 8.159.128.153.
Escape character is '^]'.
Password:
Login incorrect iZuf6c6umecwk5it5hv5b9Z login: root
Password:
Last login: Fri Aug 15 09:19:01 from ::ffff:116.62.210.211 Welcome to Alibaba Cloud Elastic Compute Service ! [root@iZuf6c6umecwk5it5hv5b9Z ~]#

登录成功。

备份旧版本openssh和openssl

# 查找需要备份的目录和文件
whereis ssh sshd openssl
ssh: /usr/bin/ssh /etc/ssh /usr/share/man/man1/ssh.1.gz
sshd: /usr/sbin/sshd /usr/share/man/man8/sshd.8.gz
openssl: /usr/bin/openssl /usr/lib64/openssl /usr/share/man/man1/openssl.1ssl.gz # 进行备份
cp /usr/bin/ssh /usr/bin/ssh-bak
cp -r /etc/ssh /etc/ssh-bak
cp /usr/sbin/sshd /usr/sbin/sshd-bak
cp /usr/bin/openssl /usr/bin/openssl-bak
cp -r /usr/lib64/openssl /usr/lib64/openssl-bak

编译安装 zlib

cd /root/openssh-openssl-curl_update/
tar -xf zlib-1.3.1.tar.gz
cd zlib-1.3.1/
./configure --prefix=/usr/local/zlib-1.3.1
make -j 4 && make install

编译安装 openssl

cd /root/openssh-openssl-curl_update/
tar -xf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w/
./config --prefix=/usr/local/openssl-1.1.1w
make -j 4 && make install ln -sf /usr/local/openssl-1.1.1w/lib/libcrypto.so.1.1 /usr/lib64/
ln -sf /usr/local/openssl-1.1.1w/bin/openssl /usr/bin/openssl
ln -sf /usr/local/openssl-1.1.1w/lib/libssl.so.1.1 /usr/lib64/

编译安装openssh

安装

cd /root/openssh-openssl-curl_update/
tar -xf openssh-9.9p2.tar.gz
cd openssh-9.9p2/
./configure --prefix=/usr/local/openssh-9.9p2 --sysconfdir=/etc/ssh --with-zlib=/usr/local/zlib-1.3.1 --with-ssl-dir=/usr/local/openssl-1.1.1w --with-pam --without-openssl-header-check
make -j 4 && make install



如果以上报错,解决办法:

yum -y install pam-devel

之后重新编译。

替换旧版本执行命令文件

编译之后需要替换旧版本相关的执行文件,每个旧版本执行文件需要用which命令查看在哪个目录下。

which sshd
/sbin/sshd
cp /sbin/sshd /sbin/sshd-bak
ln -sf /usr/local/openssh-9.9p2/sbin/sshd /sbin/sshd which ssh
/bin/ssh
cp /bin/ssh /bin/ssh-bak
ln -sf /usr/local/openssh-9.9p2/bin/ssh /bin/ssh which scp
/bin/scp
cp /bin/scp /bin/scp-bak
ln -sf /usr/local/openssh-9.9p2/bin/scp /bin/scp which sftp
/bin/sftp
cp /bin/sftp /bin/sftp-bak
ln -sf /usr/local/openssh-9.9p2/bin/sftp /bin/sftp which ssh-add
/bin/ssh-add
cp /bin/ssh-add /bin/ssh-add-bak
ln -sf /usr/local/openssh-9.9p2/bin/ssh-add /bin/ssh-add-bak which ssh-keygen
/bin/ssh-keygen
cp /bin/ssh-keygen /bin/ssh-keygen-bak
ln -sf /usr/local/openssh-9.9p2/bin/ssh-keygen /bin/ssh-keygen which ssh-keyscan
/bin/ssh-keyscan
cp /bin/ssh-keyscan /bin/ssh-keyscan-bak
ln -sf /usr/local/openssh-9.9p2/bin/ssh-keyscan /bin/ssh-keyscan

配置使用旧配置文件

尽量保持原配置不变,应用旧版本的配置文件

mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp /etc/ssh-bak/sshd_config /etc/ssh/sshd_config
systemctl restart sshd
systemctl enable sshd
systemctl status sshd

验证

sshd -V
OpenSSH_9.9p2, OpenSSL 1.1.1w 11 Sep 2023

升级成功。

停止telnet服务

升级之后为了安全起见需要关闭telnet服务

systemctl stop xinetd.service
systemctl stop telnet.socket
systemctl disable xinetd.service
systemctl disable telnet.socket

注意

如果升级之后,curl命令和yum命令不可用,说明升级跨度版本过大,需要升级curl命令的依赖:

cd /root/openssh-openssl-curl_update/
tar xf curl-8.8.0.tar
cd curl-8.8.0/
./configure --prefix=/usr/src --with-ssl=/usr/local/openssl-1.1.1w
make -j 4 && make install
mv /lib64/libcurl.so.4.6.0 /lib64/libcurl.so.4.6.0_bak
chmod +x /root/openssh-openssl-curl_update/curl-8.8.0/lib/.libs/libcurl.so.4.8.0
mv /root/openssh-openssl-curl_update/curl-8.8.0/lib/.libs/libcurl.so.4.8.0 /lib64/libcurl.so.4.6.0
which curl
/bin/curl
mv /bin/curl /usr/bin/curl.bak
mv /root/openssh-openssl-curl_update/curl-8.8.0/src/.libs/curl /bin/curl

升级openssh以及openssl的更多相关文章

  1. 升级OPENSSH 和 OPENSSL

    升级OPENSSH 和 OPENSSL   首先安装telnet服务,防止在操作过程中导致ssh远程中断   # 安装Telnetyum install telnet-server -y chkcon ...

  2. Centos6.5升级openssh、OpenSSL和wget

    1.OpenSSL 1.1.查看版本 使用如下命令查看版本: openssl version 1.2.安装gcc依赖 yum -y install gcc gcc-c++ 1.3.安装配置 ./con ...

  3. 升级openssh基于openssl

    OpenSSH is the premier connectivity tool for remote login with the SSH protocol. It encrypts all tra ...

  4. []Linux 离线升级Openssh与Openssl版本

    https://blog.csdn.net/qq_45728838/article/details/120825845 离线的意思是为Linux无法链接网络,只能通过windows 将文件上传一.首先 ...

  5. [服务器安全]升级OpenSSH,OpenSSL,vsftp,关闭NTP服务

    公司的旧版直播服务器使用的是CentOS 6.7,很多软件包都是几年前的了.最近很多安全相关的新闻充斥着IT圈,先是Intel芯片有重大安全漏洞,后面MacOS爆安全漏洞.所以,对于安全问题还真不能小 ...

  6. redhat6.4升级openssh至6.7

    1:简介 最近浙江电信对线上服务器进行漏洞扫描,暴露出原有的openssh有漏洞,建议升级openssh版本: 2:操作环境 Red Hat Enterprise Linux Server relea ...

  7. 升级OpenSSH详细步骤

    由于系统扫描到OpenSSH版本太低,所以需要将其升级到高版本.网上搜罗数个文章,都多多少少有点疏漏.加上自己之前没升级过SSH,参考好几个文章查缺补漏才升级成功,着实废了不少劲儿.所以综合一下前辈们 ...

  8. centos升级openssh的两种方式

    此文介绍的是服务器在有网络和无网络情况下升级openssh方式. 一.首先介绍一个无网络如何升级: 1.准备相关的包 openssh下载地址:  http://mirror.internode.on. ...

  9. CentOS 6.9 升级OpenSSH版本 关闭ssh服务后门

    最近用低版本的OpenSSH(5.9p1版本) 的漏洞给系统留了个后门 , 可以劫持root密码或者给root开启后门密码 : 利用Openssh后门 劫持root密码 如果公司还在用CentOS6的 ...

  10. linux升级openssh到7.9

    客户linux主机ssh存在高危漏洞,需要进行升级修复. linux联网后,直接命令行: [root@gw ~]# yum update openssl -y 此命令只是小版本的升级,比如将opens ...

随机推荐

  1. #ifndef 、 #define 、#endif使用解释

    在C语言程序代码里,看到了这么一段代码: #ifndef __WIFI_CONNECT_H_ #define __WIFI_CONNECT_H_ int WifiConnect(const char ...

  2. required a bean of type 'org.springframework.jms.core.JmsMessagingTemplate' that could not be found

    问题来源:   Spring Boot 项目集成 ActiveMQ. 报错内容:   Description:Field jmsTemplate in XXX required a bean of t ...

  3. 洛谷 P5590 赛车游戏

    洛谷 P5590 赛车游戏 P5590 赛车游戏 Problem 给一张有向图,请给每一条边赋上边权\(w\in[1,9]\)使得每一条\(1\to n\)的路径的长度相等. Solution 先来点 ...

  4. Tomcat基础学习

    Tomcat简介 Tomcat是一个轻量级的web服务器,也称为web容器,servlet容器.(web服务器可以封装http协议,简化开发.还可以将web项目部署到服务器上,对外提供网上浏览.) T ...

  5. 【闲话 No.4】 wqs 二分

    你呀你呀 很好听的派蒙歌,6.1 要备战期末没法放歌所以在 5 月底放了每日一歌,希望可以让大家开心一些,也希望派蒙生日快乐! 你呀你呀 快给我休息一下 长了颗痘又 掉了好几根头发 怎么不说话 是不是 ...

  6. ChatGPT学习之旅 (7) 参数化表达的魔力

    大家好,我是Edison. 上一篇:聊聊AI人设 通过人设模版可以有效给AI"洗脑",这体现的是结构化的表达.但想要AI实现精准控制多分支,实现千人千面的功能,就得使用参数化表达了 ...

  7. 用java的眼光看js的oop

    前言 都知道javascript的class只是语法糖而已,所以没法去对比,不在一个层次. 但是既然有了,总会有好奇的去对比. 那就对比一下. 面向对象的三个经典特性 封装 继承 多态 封装 指的是将 ...

  8. 【8*】动态DP学习笔记

    前言 WC 2024 的知识点,补个档.寒假时间紧促,这篇博客是边学边写的. 此类知识点大纲中并未涉及,所以[8]是我自己的估计,后带星号表示估计,仅供参考. 动态 DP 动态 DP 用于解决需要求出 ...

  9. WebGL简易教程——结语

    1 概述 笔者在几年前写过一系列关于WebGL的文章<WebGL简易教程--目录>,前端时间将其整理了一下,增加了一个在线案例的站点以便于学习查看.这里就顺便写一段结语吧. 2 观点 2. ...

  10. CentOS7安装SMPlayer和VLC Player

    原文地址 我装完之后,看大概是1个多G的MP4视频依然是觉得有点卡.不知道为什么,流畅度照比Windows下的视频播放器差多了. You will need to also install the E ...