OpenSSH和OpenSSL升级

需求

centos7.9升级SSH和SSL

OpenSSH升级为openssh9.8

OpenSSL升级为openssl-3.4.0

下载openssh最新版本与openssl对应版本

openssh最新版本下载地址

bash 复制代码
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz

OpenSSL下载地址

这里下载的是3.4.0

bash 复制代码
wget https://github.com/openssl/openssl/releases/download/openssl-3.4.0/openssl-3.4.0.tar.gz

Openssl安装

安装前检查

查看Centos系统版本信息

bash 复制代码
cat /etc/redhat-release

查看openssl版本信息

bash 复制代码
openssl version

查看ssh版本信息

bash 复制代码
ssh -V

安装openssl

由于openssh9.8p1要求openssl版本大于等于1.1.1,因此需要升级安装openssl

解压

bash 复制代码
tar xf openssl-3.4.0.tar.gz -C /usr/local/

创建安装目录

bash 复制代码
mkdir /opt/openssl

编译安装

bash 复制代码
# 安装编译工具和prel依赖
yum -y install gcc make perl-IPC-Cmd perl-Data-Dumper
bash 复制代码
# 进入解压目录
cd /usr/local/openssl-3.4.0/
./config  --prefix=/opt/openssl
make && make install 

更新lib文件

检查openssl-3.4.0所需要的函数库

bash 复制代码
ldd /opt/openssl/bin/openssl

添加openssl-3.4.0的库文件路径到ld.so.conf

bash 复制代码
echo "/opt/openssl/lib64" >> /etc/ld.so.conf

更新系统函数库

bash 复制代码
ldconfig  --verbose

查看旧版本的openssl命令路径

bash 复制代码
which openssl

重名为openssl.old

bash 复制代码
 mv /bin/openssl /bin/openssl.old

使用软连接的方式更新openssl命令

bash 复制代码
ln -s /opt/openssl/bin/openssl /bin/openssl

查看openssl版本

bash 复制代码
openssl version

Openssh9.8安装

解压下载的安装包

bash 复制代码
tar xf openssh-9.8p1.tar.gz -C /usr/local/
mv openssh-9.8p1/ openssh

配置解压文件,开始编译

bash 复制代码
yum -y install zlib-devel pam-devel
bash 复制代码
sudo chmod 600 /etc/ssh/ssh_host_rsa_key
sudo chmod 600 /etc/ssh/ssh_host_ecdsa_key
sudo chmod 600 /etc/ssh/ssh_host_ed25519_key
sudo chown root:root /etc/ssh/ssh_host_rsa_key
sudo chown root:root /etc/ssh/ssh_host_ecdsa_key
sudo chown root:root /etc/ssh/ssh_host_ed25519_key
sudo chmod 644 /etc/ssh/sshd_config
bash 复制代码
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/opt/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib --without-hardening
bash 复制代码
make && make install

修改启动sshd,init脚本

从源码目录下复制sshd.init到/etc/init.d/

bash 复制代码
cp /usr/local/openssh/contrib/redhat/sshd.init  /etc/init.d/

查看并修改sshd的新路径,将新的openssh安装路径更新

bash 复制代码
cat /etc/init.d/sshd.init | grep SSHD
sed -i "s/SSHD=\/usr\/sbin\/sshd/SSHD=\/usr\/local\/openssh\/sbin\/sshd/g" /etc/init.d/sshd.init
cat /etc/init.d/sshd.init | grep SSHD

查看并修改ssh-keygen的新路径,将新的ssh-keygen安装路径更新

bash 复制代码
cat -n /etc/init.d/sshd.init | grep ssh-keygen
sed -i "s#/usr/bin/ssh-keygen -A#/usr/local/openssh/bin/ssh-keygen -A#g" /etc/init.d/sshd.init
cat -n /etc/init.d/sshd.init | grep ssh-keygen

启动openssh,并设置开机启动

复制ssh的相关命令

bash 复制代码
cp -arp /usr/local/openssh/bin/* /usr/bin

重启OpenSSH

shell 复制代码
systemctl restart sshd

查看版本

bash 复制代码
ssh -V
shell 复制代码
OpenSSH_9.8p1, OpenSSL 3.4.0 22 Oct 2024
相关推荐
yy55271 小时前
系统安全及应用
安全·系统安全
无心水3 小时前
【OpenClaw:应用与协同】23、OpenClaw生产环境安全指南——Token管理/沙箱隔离/权限最小化
大数据·人工智能·安全·ai·性能优化·openclaw
ChineHe3 小时前
互联网Web服务认证技术发展史:从HTTP Basic到OpenID Connect
安全·软件工程·web
kishu_iOS&AI4 小时前
OpenClaw 管理 API Key / Token 的常见安全方案
安全·ai·策略模式·openclaw
开开心心就好5 小时前
小巧绿色免费关机工具,支持定时倒计时
linux·运维·服务器·安全·powerpoint·1024程序员节·foxmail
Xi-Xu6 小时前
在云服务器上安全运行 OpenClaw:从安装到加固的完整指南
运维·服务器·人工智能·安全
吴佳浩 Alben6 小时前
OpenClaw 2026.3.2 — 2026.3.8 权限变更与安全加固
人工智能·安全·语言模型
翻斗包菜6 小时前
Linux 系统安全及应用实战教程
安全·系统安全
徐子宸7 小时前
金舟软件-AI对话工具-华为网络数通-网络通信基本概念-20260313-未完待续
安全·web安全·网络安全·安全架构·华为网络数通·金舟软件·ai对话工具
Acczdy7 小时前
春秋云境:CVE-2025-64111
安全·网络安全