当前位置: 首页 > news >正文

CentOS 7的内网环境中将OpenSSH升级到较高版本

  1. 安装编译依赖包
    升级过程需要编译软件,请安装必要的开发工具和库。

    yum install -y gcc make pam-devel zlib-devel wget
    
  2. 备份重要文件
    防止升级失败,备份是关键。

    # 备份整个SSH配置目录
    cp -rp /etc/ssh /etc/ssh_bak
    # 备份PAM的SSH配置文件 (重要!编译安装可能会覆盖此文件)
    cp /etc/pam.d/sshd /root/sshd_pam.bak
    # 备份OpenSSL(如果已存在)
    cp /usr/bin/openssl /usr/bin/openssl.bak
    

📥 离线获取安装包

在内网机器上,你需要提前从官网下载好源码包,然后通过U盘或内网传输工具复制到CentOS 7服务器上。以下是目前较新的稳定版本,你可以根据需求调整版本号。

软件推荐版本下载地址 (在可联网机器上访问)
OpenSSL1.1.1whttps://www.openssl.org/source/openssl-1.1.1w.tar.gz
OpenSSH9.6p1https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz

🛠️ 升级OpenSSL

OpenSSH的高版本依赖于较新的OpenSSL库。

  1. 编译安装OpenSSL

    # 解压
    tar -zxvf openssl-1.1.1w.tar.gz
    cd openssl-1.1.1w
    # 配置、编译和安装
    ./config --prefix=/usr/local/openssl shared
    make && make install
    
  2. 配置系统使用新的OpenSSL

    # 创建软链接,使系统命令指向新版本
    ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
    ln -sf /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/
    ln -sf /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/
    # 更新动态链接库缓存
    echo "/usr/local/openssl/lib" >> /etc/ld.so.conf.d/openssl-1.1.1w.conf
    ldconfig
    
  3. 验证OpenSSL版本
    执行 openssl version,应显示 OpenSSL 1.1.1w ...

🔑 升级OpenSSH

现在开始编译安装新版本的OpenSSH。

  1. 编译安装OpenSSH

    # 解压
    tar -zxvf openssh-9.6p1.tar.gz
    cd openssh-9.6p1
    # 配置,指定新的OpenSSL路径
    ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-pam --with-zlib --with-md5-passwords
    # 编译并安装
    make && make install
    
  2. 恢复配置并启用服务

    # 恢复之前备份的PAM配置
    cp /root/sshd_pam.bak /etc/pam.d/sshd
    # 恢复sshd_config (或用新的为基础修改)
    cp /etc/ssh_bak/sshd_config /etc/ssh/sshd_config
    # 复制启动脚本并启用服务
    cp contrib/redhat/sshd.init /etc/init.d/sshd
    chkconfig --add sshd
    chkconfig sshd on
    

✅ 收尾工作与验证

  1. 重启SSH服务

    systemctl daemon-reload
    systemctl restart sshd
    
  2. 验证版本
    执行 ssh -V,输出应类似 OpenSSH_9.6p1, OpenSSL 1.1.1w ...

http://www.dtcms.com/a/477932.html

相关文章:

  • 用你本地已有的私钥(private key)去 SSH 登录远程 Ubuntu 服务器
  • Ruby小白学习路线
  • 做网站项目需求分析是什么网站制作的评价指标
  • 普陀营销型网站建设微信登录界面
  • 一文入门Rust语言
  • FFmpeg开发笔记(十三):ffmpeg采集麦克风音频pcm重采样为aac录音为AAC文件
  • 深度学习实战:基于 PyTorch 的 MNIST 手写数字识别
  • 字符串逆序的优雅实现:双指针法的巧妙应用
  • [GO]golang接口入门:从一个简单示例看懂接口的多态与实现
  • 文章管理系统CMS的XSS注入渗透测试(白盒)
  • 主机做网站服务器吗成都网站建设服务功能
  • 北京网站关键词优化南昌网站建设哪家比较好
  • 前端Vue 后端ASP.NET Core WebApi 本地调试交互过程
  • KeepMouseSpeedOK:专业鼠标速度调节工具
  • leetcode 169. 多数元素
  • 沟通交流类网站有哪些ui外包网站
  • LeetCode——双指针(进阶)
  • SQL Server 2019实验 │ 安装及其管理工具的使用
  • RAGE框架:确保AI Prompt高效率高质量输出
  • aspcms 你的网站未安装 请先安装qq wordpress登陆
  • 广州白云做网站的公司百度推广有哪些形式
  • C++(Qt)软件调试---binutils工具集详解(39)
  • Qt 项目国际化从零到一:用 Qt Linguist 实现多语言动态切换(含源码与踩坑指南)
  • GitPuk入门到实战(8) - 使用GitPuk + Arbess进行CICD自动化部署
  • 网站后台登录地址修改怎么查询一个网站有没有做竞价
  • 《Qt应用开发》笔记p5
  • 【AI4S】AI设计小分子药物的三大底层逻辑
  • 网站建设费入什么科目2018把网站做静态化是什么意思
  • Node.js 事件循环(Event Loop)
  • C语言结构体详解:从定义、内存对齐到位段应用