惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
Spread Privacy
Spread Privacy
T
Threatpost
C
Cisco Blogs
P
Palo Alto Networks Blog
AI
AI
Cyberwarzone
Cyberwarzone
NISL@THU
NISL@THU
P
Privacy & Cybersecurity Law Blog
G
GRAHAM CLULEY
Simon Willison's Weblog
Simon Willison's Weblog
T
Tor Project blog
Latest news
Latest news
AWS News Blog
AWS News Blog
D
Docker
S
SegmentFault 最新的问题
博客园 - 聂微东
WordPress大学
WordPress大学
Vercel News
Vercel News
S
Securelist
爱范儿
爱范儿
J
Java Code Geeks
Know Your Adversary
Know Your Adversary
S
Schneier on Security
Hugging Face - Blog
Hugging Face - Blog
F
Fortinet All Blogs
Last Week in AI
Last Week in AI
D
DataBreaches.Net
宝玉的分享
宝玉的分享
D
Darknet – Hacking Tools, Hacker News & Cyber Security
MongoDB | Blog
MongoDB | Blog
Engineering at Meta
Engineering at Meta
K
Kaspersky official blog
美团技术团队
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
量子位
博客园_首页
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
Google Online Security Blog
Google Online Security Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
腾讯CDC
T
Threat Research - Cisco Blogs
雷峰网
雷峰网
有赞技术团队
有赞技术团队
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed
S
Security Affairs

博客园 - Caraxes

共享打印机的另一种方式 简易防火墙映射测试 手动部署MySQL Exporter实战 Windows屏幕字体锯齿化的调整 Windows轻量级WebDAV服务器搭建 解决一个mysql数据库连接打开慢的问题记录 Mysql 赋予用户访问单表SELECT权限 UNIX换行和DOS换行的批量转换 Centos Mysql 8.0.43安装 关闭windows 更新驱动程序的方法 特殊符号的输入 tomcat启动一次问题的处理。 如何禁用键盘左侧Win键 Windows设置分页文件到D盘无效的解决方法 npm中文站的映射 使用ffmpeg批量生成视频的缩略图 解决内网HTTP由NG转发HTTPS后,部分跳转还是HTTP的问题 Linux LVM方式管理磁盘 Vscode Debug乱码的问题修复 一个切换不同JAVA版本的方法 ffmpeg提取音频 GO应用WINDOWS下添加程序图标 Linux 证书文件查看参考 批量查看HTTPS的SSL证书的有效期脚本 Linux系统下安装Java环境 修改Jar包里面的配置文件
CentOS7下OpenSSH10.0p2升级实践
Caraxes · 2025-10-29 · via 博客园 - Caraxes

安装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. 下载源代码包
    [城通网盘下载文件包 (访问密码: 330231)](https://url72.ctfile.com/s/6ffc3ffd421fa7caabd5635889e4287a?p=330231"城通网盘下载文件包 (访问密码: 330231)")
    说明:前往我个人分享的网盘下载。
  5. 解压缩代码包
    tar -zxvf zlib-1.3.1.tar.gz
    tar -zxvf openssl-3.3.1.tar.gz
    tar -zxvf openssh-10.0p2.tar.gz

安装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 -sf /usr/local/src/openssl/bin/openssl /usr/bin/openssl
    ln -sf /usr/local/src/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
    ln -sf /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-10.0p2目录
    cd /usr/local/src/openssh-10.0p2
  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-10.0p2/contrib/redhat/sshd.init /etc/init.d/sshd
    cp -rf /usr/local/src/openssh-10.0p2/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
  7. 非标志端口需要注意(非22端口)
    本次升级会将SSH监听端口恢复为22。如果不是使用这个端口。需要运行以下语句修改端口(把22修改为需要的数字)。
    echo 'Port 22' >> /etc/ssh/sshd_config

安装后的收尾

  1. 重启sshd服务
    systemctl daemon-reload
    /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