avatar

瓜生花子八宝粥

少壮不努力 老了看浏览器

  • 首页
  • 开源项目
  • Linux
  • Windows
  • Docker
  • 中间件
  • 数据库
主页 Linux ssh版本升级
文章

Linux ssh版本升级

发表于 2024-12-2 更新于 2024-12- 4
作者 jepwei
12~15 分钟 阅读

更新和修复OpenSSH漏洞指南

本指南旨在为Linux运维工程师提供详尽的OpenSSH漏洞修复步骤,包括如何升级OpenSSH和OpenSSL。请确保按照以下步骤操作,避免潜在错误。

1. 准备工作

环境准备

  • 测试环境:CentOS 7

下载最新版本

  • OpenSSH:下载链接
  • OpenSSL:下载链接

注意:下载后将文件复制到 /opt 目录。

2. 检查当前版本

使用命令 ssh -V 检查当前安装的OpenSSH和OpenSSL版本。若非以下版本,直接跳至步骤6,直接去升级openssh即可。

  • OpenSSH 7.4
  • OpenSSL 1.0.2k

3. 安装依赖

有网络环境

运行以下命令安装必要依赖:

yum install -y perl gcc-c++ zlib zlib-devel pam-devel perl-CPAN perl-IPC-Cmd

无网络环境

从其他有网络的CentOS 7系统打包依赖(其他系统自己想办法),并使用以下命令安装:

rpm -Uvh ./*.rpm --force --nodeps

依赖包可通过我的百度网盘下载:下载链接

4. 安装OpenSSL

设置系统时间

确保系统时间正确,不准确的时间会导致安装失败。使用 date -s "00:00:00 2023-09-14" 命令校准时间。

安装步骤

tar -zxvf openssl-1.1.1v.tar.gz
cd openssl-1.1.1v
./config
make
make install

5. 备份原有OpenSSL

创建配置文件并更新动态链接库配置:

echo '/usr/local/lib' > /etc/ld.so.conf.d/usr_local_lib.conf
echo '/usr/local/lib64' > /etc/ld.so.conf.d/usr_local_lib64.conf
ldconfig

6. 升级OpenSSH

解压并配置

tar -zxvf openssh-9.4p1.tar.gz
cd openssh-9.4p1
./configure --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/ssl --with-zlib
make

处理潜在问题

  • 若系统提示存在多个OpenSSL版本,使用 --without-openssl-header-check 参数重新配置。
  • 若编译时提示找不到OpenSSL库,尝试卸载系统自带的OpenSSL:rpm -e --nodeps openssl*

安装与配置

mv /etc/ssh /etc/ssh_bak
make install

配置sshd

编辑 /etc/ssh/sshd_config 文件,确保以下配置正确:

PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes
X11Forwarding yes

备份原有OpenSSH并替换新文件

首先备份原有系统自带的OpenSSH文件,再替换链接新的过去

mv /usr/bin/scp /usr/bin/scp_bak
mv /usr/bin/sftp /usr/bin/sftp_bak
mv /usr/bin/ssh /usr/bin/ssh_bak
mv /usr/bin/ssh-add /usr/bin/ssh-add_bak
mv /usr/bin/ssh-agent /usr/bin/ssh-agent_bak
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen_bak
mv /usr/bin/ssh-keyscan /usr/bin/ssh-keyscan_bak
mv /usr/sbin/sshd /usr/sbin/sshd_bak

接着,安装新版OpenSSH,并确保所有关键的二进制文件链接到新的安装位置:

ln -s /usr/local/bin/scp /usr/bin/scp
ln -s /usr/local/bin/sftp /usr/bin/sftp
ln -s /usr/local/bin/ssh /usr/bin/ssh
ln -s /usr/local/bin/ssh-add /usr/bin/ssh-add
ln -s /usr/local/bin/ssh-agent /usr/bin/ssh-agent
ln -s /usr/local/bin/ssh-keygen /usr/bin/ssh-keygen
ln -s /usr/local/bin/ssh-keyscan /usr/bin/ssh-keyscan
ln -s /usr/local/sbin/sshd /usr/sbin/sshd

然后,备份并更新 ssh-copy-id 工具:

mv /usr/bin/ssh-copy-id /usr/bin/ssh-copy-id_bak
cp contrib/ssh-copy-id /usr/bin/ssh-copy-id
chmod +x /usr/bin/ssh-copy-id

这些步骤确保在升级过程中,原有的OpenSSH文件保持安全,且新安装的版本能够正常运行。

替换启动脚本并重启服务

systemctl disable sshd
systemctl stop sshd
mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service_bak
cp contrib/redhat/sshd.init /etc/init.d/sshd
systemctl enable sshd
systemctl start sshd

验证安装

使用 ssh -V 检查OpenSSH版本。

7. 验证OpenSSL位置

若需要确认安装的OpenSSL位置,执行:

find / -name openssl

根据找到的路径,在编译OpenSSH时相应地指定 --with-ssl-dir 选项。注意,OpenSSH 9.4及以上版本需与OpenSSL 1.1.1以上版本配合使用。如果先前已安装较新版本的OpenSSL,则无需重新安装,直接从步骤6开始升级OpenSSH即可。

Linux
Linux
许可协议: 
分享

相关文章

7月 16, 2025

ubuntu 设置时间显示为24小时制

对ubuntu默认的时间显示格式不太满意,查阅了相关资料进行修改为24小时制度,特此记录和分享给需要设置的网友 查看当前的timezone root@jumpserver:~# timedatectl Local time: Sat 2024-03-23 12:45:5

6月 10, 2025

KVM 虚拟机创建模板

查看--os-type支持的参数 osinfo-query os # 列出所有已知操作系统 win7 virt-install --name=win7_zpcl_ip --vcpu=8,sockets=1,cores=8,threads=1 --ram=16384 --disk path=/home

1月 15, 2025

cpu 内存占用脚本

本文介绍了两个版本的Linux压力测试脚本,分别用于CPU和内存的压力测试。CPU压力测试脚本通过无限循环创建指定数量的进程以占用CPU资源;内存压力测试脚本则通过创建临时内存块来模拟内存占用,支持指定大小和停止运行。用户需根据用法说明参数执行脚本。该文档适合需要进行性能测试的Linux用户。

下一篇

Linux 修复损坏分区

上一篇

Linux 常用命令

最近更新

  • 1panel 部署
  • jumpserver 堡垒机部署
  • ubuntu 设置时间显示为24小时制
  • pritunl vpn 部署
  • dockovpn 部署

热门标签

nacos openvpnas 资源分享 docker oracle mysql ubuntu 开源项目 虚拟化 Linux

目录

©2025 瓜生花子八宝粥. 保留部分权利。

使用 Halo 主题 Chirpy