安装Telnet服务

为了避免升级OpenSSH导致服务器不可连接。需要先下载安装Telnet组件。升级期间使用Telnet作为升级期间的服务器连接方式。

  1. 先查询telnet是否安装

    rpm -qa telnet
  2. 如果没有安装则执行以下语句安装

    yum -y install telnet
  3. 查询telnet-server是否安装

    rpm -qa telnet-server
  4. 如果没有安装则执行以下语句安装

    yum -y install telnet-server
  5. 防火墙状态放行telent

    firewall-cmd --permanent --add-port=23/tcp --zone=public
  6. 防火墙重新载入

    firewall-cmd --reload
  7. 启用Telnet服务开机启动

    systemctl enable telnet.socket
  8. 启动Telnet服务

    systemctl start telnet.socket

*注意:

  • 若防火墙是已经禁用。请略过防火墙相关命令
  • 若防火墙是暂时停止。建议先启动防火墙,添加访问策略!否则重装过程需要服务器重启,重启后可能因为防火墙原因无法通过telnet访问服务器。如果OpenSSH又安装失败,将导致服务器不可连接。附:防火墙启动命令 systemctl start firewalld

创建使用Telnet服务的账户

因为默认情况root 不能直接登录telnet

创建一个新用户用于登录elnet服务,这个账号升级完成后需要进行删除。

  1. 创建账号

    sudo useradd tempuser
  2. 设置密码

    sudo passwd tempuser

    输入一个密码,例如:Mycar=998

    后续访问的时候,通过XShell工具连接

    先用tempuser登录后,再使用

    su root

    切换到root用户。

升级OpenSSH

请特别注意:以下命令是使用Telnet连接后,切换到root账户进行操作。如果直接使用SSH链接进行操作,将可能会导致服务器无法连接的后果!!!

  1. 安装相关的依赖项,如有遗漏再次安装

    yum install -y vim gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel zlib-devel tcp_wrappers-devel tcp_wrappers libedit-devel perl-IPC-Cmd wget tar lrzsz nano

    yum -y install perl-IPC-Cmd

    yum -y install pam-devel
  2. 安装相关的依赖项,如有遗漏再次安装

    yum -y install gcc pam-devel zlib-devel openssl-devel net-tools
  3. 进入本地临时目录

    cd /usr/local/src
  4. 下载源代码包

    wget https://www.zlib.net/zlib-1.3.1.tar.gz

    wget https://www.openssl.org/source/openssl-3.3.1.tar.gz

    wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz

    说明:以上安装包下载可能需要耗费不少时间!如果下载速度很慢,可以考虑去我个人分享的网盘下载。
  5. 解压缩代码包

    tar -zxvf zlib-1.3.1.tar.gz

    tar -zxvf openssl-3.3.1.tar.gz

    tar -zxvf openssh-9.8p1.tar.gz

城通网盘下载文件包 (访问密码: 1133)

安装Zlib

  1. 进入zlib-1.3.1目录

    cd /usr/local/src/zlib-1.3.1
  2. 配置

    ./configure --prefix=/usr/local/src/zlib
  3. 编译及安装

    make -j 4 && make test && make install

安装OpenSSL

  1. 进入openssl-3.3.1目录

    cd /usr/local/src/openssl-3.3.1
  2. 配置

    ./config --prefix=/usr/local/src/openssl
  3. 编译及安装

    make -j 4 && make install
  4. 配置

    mv /usr/bin/openssl /usr/bin/oldopenssl

    ln -s /usr/local/src/openssl/bin/openssl /usr/bin/openssl

    ln -s /usr/local/src/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3

    ln -s /usr/local/src/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
  5. 更新动态库

    vim /etc/ld.so.conf

    添加 /usr/local/src/openssl/lib64 到文件中。并删除类似的旧行。我这边实际1情况是删除了 /usr/local/openssl/lib64

    ldconfig
  6. 查看更新后的版本

    openssl version -v

卸载旧版本OpenSSH

  1. 卸载旧版本OpenSSH服务

    yum remove -y openssh
  2. 清理残余文件

    rm -rf /etc/ssh/*

安装最新版OpenSSH服务

  1. 进入openssh-9.8p1目录

    cd /usr/local/src/openssh-9.8p1
  2. 配置

    ./configure --prefix=/usr/local/src/ssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/src/openssl --with-zlib=/usr/local/src/zlib
  3. 编译及安装

    make -j 4 && make install
  4. 查看目录版本

    /usr/local/src/ssh/bin/ssh -V
  5. 复制新ssh文件

    cp -rf /usr/local/src/openssh-9.8p1/contrib/redhat/sshd.init /etc/init.d/sshd

    cp -rf /usr/local/src/openssh-9.8p1/contrib/redhat/sshd.pam /etc/pam.d/sshd

    cp -rf /usr/local/src/ssh/sbin/sshd /usr/sbin/sshd

    cp -rf /usr/local/src/ssh/bin/ssh /usr/bin/ssh

    cp -rf /usr/local/src/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
  6. 允许root登录

    echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config

    echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config

安装后的收尾

  1. 重启sshd服务

    /etc/init.d/sshd restart
  2. 查看服务运行状态

    /etc/init.d/sshd status
  3. 添加开机启动

    chkconfig --add sshd
  4. 查看升级后ssh版本

    ssh -V
关闭Telnet服务
  1. 停止Telnet 服务

    systemctl stop telnet.socket
  2. 禁用Telnet服务开机启动

    systemctl disable telnet.socket

删除临时用户

  1. 使用命令删除临时用户

    userdel -rf tempuser

提示:这篇文章只作为学习记录,感谢原作者分享。

参考链接:

https://blog.csdn.net/Jerry_zhy/article/details/141217681

CentOS环境下OpenSSH9.8p1升级实践的更多相关文章

  1. centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复

    centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复 有时候我们会碰到这样的业务场景: 1.将大的数据库恢复到本地进行业务测试 ...

  2. Centos环境下部署游戏服务器-软件安装

    这篇文章主要介绍一下游戏服务器需要安装的软件和需要修改的配置.现介绍下项目,本项目服务器端是c++ + mysql组合,客户端是as写的,需要安装的服务为Mysql,Php,Apache, 以及一个n ...

  3. CentOS环境下R语言的安装和配置

    最近在看数据统计和分析,想到了R语言,于是就着手在自己的CentOS环境下进行安装和配置.步骤如下: 1.前往R官网下载安装包. 2.解压压缩包:tar xvzf R-3.2.2.tar.gz 3.进 ...

  4. 在Centos环境下安装兼容Apache2.4高版本SVN服务

    在阿里云Centos环境下,搭建PHP运行环境,PHP选择了php7版本,Mysql选择了5.7版本,Apache选择了2.4版本,在搭建SVN版本控制服务过程中出现了不兼容问题,当前环境下Apach ...

  5. linux系统Centos环境下搭建SVN服务器及权限配置

    linux系统Centos环境下如何搭建SVN服务器以及svnserve.conf.authz.passwd配置文件详细介绍   至于svn的概念,这里就不做详细阐述了,可以自行百度.简单来讲就是一个 ...

  6. CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点 以下 ...

  7. centos环境下输入命令不能有中文那么我怎么插入中文数据到数据库

    centos环境下输入命令不能有中文那么我怎么插入中文数据到数据库 如下图: 首先查看是否安装了中文语言支持组件 yum grouplist 没有的话安装 yum install Chinese Su ...

  8. centos环境下创建数据库和表的方法

    centos环境下创建数据库和表的方法 //查询数据库的命令: mysql> SHOW DATABASES; +--------------------+ | Database         ...

  9. centos环境下登录mysql报 ERROR 1045 (28000)怎么解决

    centos环境下登录mysql报 ERROR 1045 (28000)怎么解决 新入手一台虚拟机,Centos7系列的操作系统,安装mysql后,执行连接出现了Mysql ERROR 1045 (2 ...

  10. Centos环境下手动设置-网络参数配置-网络挨排错顺序-设置网卡为上网模式的设定

    Linux中网络参数大致包含以下内容: IP地址 子网掩码 网关 DNS服务器 主机名(默认 localhost) 历来Linux系统中修改这些参数的方式通常有:命令.文件两种.其中通过命令设置可以立 ...

随机推荐

  1. OpenTiny HUICharts开源发布,带你了解一个简单、易上手的图表组件库

    摘要:目前 OpenTiny HUICharts 已经成功落地在华为内部100多个产品中,持续提升了用户的可视化体验. 本文分享自华为云社区<OpenTiny HUICharts 正式开源发布, ...

  2. 【粉丝问答19】Linux内核中为啥变量没初始化就用了?你确定了解宏定义?

    @ 目录 一.问题 二.分析 三.宏定义的注意点 1. 只占用编译时间 2. 宏替换发生时机 3. 预处理包括哪些工作 四.如何快速展开复杂的宏定义? 第一步 第二步 五.练习 六.15个经典宏定义小 ...

  3. JavaScript设计模式样例十四 —— 观察者模式

    观察者模式(Observer Pattern) 定义:当一个对象被修改时,则会自动通知它的依赖对象.目的:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被 ...

  4. k8s单机部署

    一.环境 64位centos 二.安装 (1)关闭防火墙 systemctl stop firewalld systemctl disable firewalld (2)安装etcd与kubernet ...

  5. C#基础 - Task

    目录 前言 1,Task的分类 2,Task的状态 2.1 TaskStatus枚举 2.2 状态相关属性 2.3 小结 3,Task的等待 3.1 Wait方法 3.2 死锁 3.2.1 死锁形成 ...

  6. Ubuntu 安裝 VMware Workstation Pro

    安装 下载依赖: # Ubuntu 22.04 及以前 sudo apt install libaio1 # Ubuntu 24.04 及以后 sudo apt install libaio1t64 ...

  7. 【YashanDB知识库】存储过程报错snapshot too old

    问题描述 20231127上午客户反馈绩效系统20231125.20231126出现2次YAS-02020 snapshot too old的问题,测试也有类似问题. 该过程是客户新增的存储过程,目的 ...

  8. 15 Python模块

    本篇是 Python 系列教程第 15 篇,更多内容敬请访问我的 Python 合集 一个模块其实就是一个文件(以.py结尾).使用模块的好处是便于维护和重用代码. 要创建一个模块,只需编写一个新的文 ...

  9. Unity 刚体 AddForce 的几种力类型

    今天在实现 2D 横版跳跃的时候,发现使用AddForce添加的力太突兀了,没有逐渐向上的过程,发现AddForce还有ForceMode mode参数 以下部分内容摘自Bing Copilot总结 ...

  10. 微信小程序--云开发支付闭环

    云开发支付流程闭环 extends 微信小程序--使用云开发完成支付闭环 在上述文章中,我们对支付结果的处理更多依赖于小程序端的操作 订单号存储在小程序端 支付结果采用小程序端定时触发器轮询 现在我对 ...