liunx升级openssl的教程

发布于:2025-08-05 ⋅ 阅读:(14) ⋅ 点赞:(0)

一、新建一个正确的 .repo 文件

创建文件:

sudo nano /etc/yum.repos.d/aliyun-centos7.repo

 将以下内容粘贴进去:

[base]
name=CentOS-7 - Base - aliyun
baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/
enabled=1
gpgcheck=0

[updates]
name=CentOS-7 - Updates - aliyun
baseurl=http://mirrors.aliyun.com/centos/7/updates/x86_64/
enabled=1
gpgcheck=0

[extras]
name=CentOS-7 - Extras - aliyun
baseurl=http://mirrors.aliyun.com/centos/7/extras/x86_64/
enabled=1
gpgcheck=0
 

💡 注意:

  • 我们手动指定了 baseurl 为 CentOS 7 的路径

  • 禁用了 GPG 检查以避免密钥错误(如需开启再配置)

保存并退出(在 nano 中按 Ctrl+O,回车,再按 Ctrl+X 退出)。

二、刷新缓存并测试

sudo yum clean all
sudo yum makecache

 如果一切正常,你会看到:

元数据缓存已建立

三、安装依赖 

 sudo yum install gcc make zlib-devel pam-devel openssl-devel -y

 四、一键升级脚本:upgrade_openssh_8.3.sh

请复制保存为 upgrade_openssh_8.3.sh,并执行 bash upgrade_openssh_8.3.sh

#!/bin/bash

# -------------------------
# OpenSSH 8.3 升级脚本(适用于 Kylin / CentOS / RHEL)
# -------------------------

set -e

OPENSSH_VERSION="8.3p1"
INSTALL_PREFIX="/usr/local/openssh"
SRC_DIR="/usr/local/src"

echo "===> 安装依赖..."
yum install -y gcc make zlib-devel pam-devel openssl-devel wget

echo "===> 下载源码..."
cd $SRC_DIR
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${OPENSSH_VERSION}.tar.gz
tar zxvf openssh-${OPENSSH_VERSION}.tar.gz
cd openssh-${OPENSSH_VERSION}

echo "===> 配置编译参数..."
./configure --prefix=${INSTALL_PREFIX} \
            --sysconfdir=/etc/ssh \
            --with-md5-passwords \
            --with-pam

echo "===> 编译并安装..."
make -j$(nproc)
make install

echo "===> 备份旧版本 SSH 二进制..."
mv /usr/bin/ssh /usr/bin/ssh.bak 2>/dev/null || true
mv /usr/sbin/sshd /usr/sbin/sshd.bak 2>/dev/null || true

echo "===> 建立新版本软链接..."
ln -sf ${INSTALL_PREFIX}/bin/ssh /usr/bin/ssh
ln -sf ${INSTALL_PREFIX}/sbin/sshd /usr/sbin/sshd

echo "===> 拷贝启动脚本(保持系统兼容)..."
cp contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd

echo "===> 添加系统服务(若需要)..."
chkconfig --add sshd
chkconfig sshd on

echo "===> 检查版本:"
ssh -V
sshd -V || true

echo "===> 重启 sshd 服务(注意不要关闭当前连接)..."
systemctl restart sshd || service sshd restart

echo "✅ OpenSSH ${OPENSSH_VERSION} 升级完成!"

 升级后检查

ssh -V
# OpenSSH_8.3p1, OpenSSL ...

 确认输出中有 OpenSSH_8.3p1 即表示升级成功。

提醒:

⚠️ 升级 OpenSSH 过程中请勿关闭 SSH 连接!

  • 建议在VNC、串口、KVM方式下执行,避免升级失败锁死远程连接。

  • 或使用 screen / tmux 保持会话。

问题分析

❌ 当前问题分析:

  • GSSAPIAuthenticationGSSAPICleanupCredentials完全移除(OpenSSH 从 8.x 开始默认移除 GSSAPI)。

  • RSAAuthenticationRhostsRSAAuthentication已废弃的老旧选项(从 OpenSSH 7.x 开始就建议不用)。

  • 因此,sshd 无法启动是因为 sshd_config 中存在这些不兼容配置项。

    解决方案:

    你只需要修改 /etc/ssh/sshd_config 文件,注释或删除这些 4 行配置项

    步骤:

    sudo nano /etc/ssh/sshd_config

    GSSAPIAuthentication yes

  • GSSAPICleanupCredentials yes

  • RSAAuthentication yes

  • RhostsRSAAuthentication no

    修改为:

    # GSSAPIAuthentication yes

  • # GSSAPICleanupCredentials yes

  • # RSAAuthentication yes

  • # RhostsRSAAuthentication no

    或者直接删掉这几行也可以。

    保存后,重新测试配置是否通过:

    sudo /usr/sbin/sshd -t 

    如果没有任何输出,说明配置已修复成功。


    ✅ 然后重新启动 sshd:

    sudo systemctl restart sshd

网站公告

今日签到

点亮在社区的每一天
去签到