【Linux】OpenSSH升级9.7

本文详细描述了如何在Linux系统上升级OpenSSH到9.7版本,包括SSL的匹配安装、依赖包管理、编译安装过程以及遇到的问题如Xshell、scp和lftp使用问题的解决方案。

最近公司项目上扫出来的漏洞需要升级ssh到9.7版本,这里记录下升级的流程。

安装包下载链接
http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
https://www.openssl.org/

升级最新的openssh需要ssl的版本匹配,这个根据实际操作系统上的版本确定,我这里是需要先升级ssl

注意

需要多开一个至多个保持长连接,以免升级出错导致远程不上。

一、升级Opnessl

1.1安装依赖

yum install -y perl-CPAN 
yum install -y perl-IPC-Cmd 
yum install -y gcc*

1.2安装

#备份原来的ssl
cp /usr/bin/openssl openssl_bak
#解压压缩包至/usr/local
makir openssl
tar -zxvf openssl-xxx.tar.gz
cd openssl-xxx
./config --prefix=/usr/local/openssl
#下面这条命令执行时间较久,属于正常情况。
make && make install
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl  	    
ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3  
ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
chmod +777 /usr/local/openssl/lib64
chmod +777 /usr/local/openssl
ldconfig -v
ldd /usr/local/openssl/bin/openssl

1.3 验证版本

openssl version

二、升级Openssh

2.1 安装依赖

yum install gcc  perl zlib-devel openssl-devel pam-devel libselinux-devel zlib-devel openssl-devel -y 

2.2 安装软件

cd /usr/local
#备份原来的openssh,我得是在/usr/local/openssh
mv /usr/local/openssh /usr/local/openssh_bak
cp /usr/bin/ssh  /usr/bin/ssh.bak
cp /usr/sbin/sshd  /usr/sbin/sshd.bak
mkdir openssh
tar -zxvf openssh_9.7p1.tar.gz
cd openssh_9.7p1
# with-ssl-dir 是ssl的安装目录
./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/openssl
make && make install
#卸载掉之前用yum安装的openssh版本。
yum remove openssh
#修改配置文件
vim /usr/local/openssh/etc/sshd_config
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes
Subsystem      sftp   internal-sftp
#退出vim
cp /usr/local/openssh-9.7p1/contrib/redhat/sshd.init  /etc/init.d/sshd
cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
cp /usr/local/openssh/bin/ssh /usr/bin/ssh
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
#我的是生产环境,配置文件权限
 chmod +777 /usr/local/openssh
 chmod +777 /usr/local/openssh/bin

2.3验证版本

chkconfig --add sshd 
chkconfig sshd on
systemctl restart sshd
#验证版本
ssh -V

三、出现的问题

3.1 Xshell直接跳转Xftp失败

sshd_config配置文件问题。

Subsystem      sftp   internal-sftp

3.2 scp不能使用

权限问题

3.3 lftp不能使用

同3.4处理

3.4 脚本自动执行卡死,手动执行成功

脚本内容可能涉及lftp远程电脑,
①需要在环境变量文件(~/.bash_profile)的PTATH后加上Openssh的路径,
Openssh的sshd_config文件中会有具体的路径显示如下:

:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/openssh/bin

②在具体脚本内加上如下内容:

#!/bin/bash
. /etc/profile
. ~/.bash_profile
source /home/zz/.bash_profile

修改脚本时间,等待脚本自动执行。

### 准备工作 在开始升级 OpenSSH 之前,需要确保系统环境满足以下条件: - 系统为 Rocky Linux 9.3。 - 系统上已安装必要的编译工具和依赖库,如 `gcc`, `make`, `rpm-build`, `pam-devel` 等。 - 已经下载了 OpenSSH 9.7p1 的源码包(例如 `openssh-9.7p1.tar.gz`)。 ### 步骤概述 1. **安装编译工具和依赖库** 确保系统上已安装编译所需的工具和依赖库: ```bash dnf groupinstall "Development Tools" dnf install pam-devel libselinux-devel zlib-devel ``` 2. **下载 OpenSSH 源码包** 从 OpenSSH 官方网站下载 9.7p1 版本的源码包: ```bash wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz ``` 3. **解压并进入源码目录** 解压源码包并进入解压后的目录: ```bash tar -zxvf openssh-9.7p1.tar.gz cd openssh-9.7p1 ``` 4. **配置编译选项** 使用 `./configure` 配置编译选项。以下是一个基本的配置示例,具体可以根据需求调整: ```bash ./configure --prefix=/usr \ --sysconfdir=/etc/ssh \ --with-pam \ --with-selinux \ --with-md5-passwords \ --with-tcp-wrappers ``` 5. **编译源码并生成 RPM 包** 使用 `rpmbuild` 工具将源码编译成 RPM 包。首先,确保 `rpmbuild` 已安装: ```bash dnf install rpm-build ``` 然后,使用以下命令编译源码并生成 RPM 包: ```bash rpmbuild -tb openssh-9.7p1.tar.gz ``` 编译完成后,生成的 RPM 包通常位于 `/root/rpmbuild/RPMS/x86_64/` 目录下。 6. **安装生成的 RPM 包** 使用 `yum` 或 `dnf` 安装生成的 RPM 包: ```bash dnf install /root/rpmbuild/RPMS/x86_64/openssh-9.7p1-*.rpm ``` 7. **验证安装** 安装完成后,验证 OpenSSH 的版本是否已更新为 9.7p1: ```bash ssh -V ``` 输出应显示 `OpenSSH_9.7p1`,表示升级成功。 8. **备份和恢复配置文件** 如果在升级过程中需要恢复原有的配置文件,可以将旧版本的配置文件备份并复制到新版本的目录中。例如,备份 `/etc/ssh/sshd_config` 文件: ```bash cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak ``` 如果需要恢复配置文件,可以将备份文件复制回来: ```bash cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config ``` 9. **重启 SSH 服务** 最后,重启 SSH 服务以应用新版本: ```bash systemctl restart sshd ``` ### 注意事项 - **依赖库问题**:如果系统处于离线状态,安装 RPM 包时可能需要手动下载并安装依赖库。可以使用 `yum deplist` 命令查看所需的依赖库,并在有网络的环境中下载后传输到目标系统进行安装。 - **PAM 配置文件**:如果在升级过程中丢失了 PAM 配置文件,可以参考已有的配置文件内容进行恢复。 - **安全加固**:升级完成后,建议检查并调整 SSH 的安全配置,确保符合组织的安全策略。 ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值