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
相关推荐
吠品8 小时前
企业信任基石OV SSL证书
网络协议·https·ssl
HABuo8 小时前
【linux文件系统】磁盘结构&文件系统详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
九河云10 小时前
5秒开服,你的应用部署还卡在“加载中”吗?
大数据·人工智能·安全·机器学习·华为云
枷锁—sha11 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
桌面运维家12 小时前
vDisk安全启动策略怎么应用?防止恶意引导攻击
安全
我是一只puppy12 小时前
使用AI进行代码审查
javascript·人工智能·git·安全·源代码管理
野指针YZZ14 小时前
一键配置RK3588网络与SSH远程连接
网络·ssh·rk3588
吠品14 小时前
命令行揭示SSL证书真相
https·github·ssl
迎仔14 小时前
10-网络安全监控与事件响应:数字世界的智能监控与应急系统
网络·安全·web安全
x-cmd17 小时前
[x-cmd] jsoup 1.22.1 版本发布,引入 re2j 引擎,让 HTML 解析更安全高效
前端·安全·html·x-cmd·jsoup