Linux系统
Linux物理层
LSI Raid 阵列日常操作
MegaCLI基本使用指南
重要参数含义说明
Raid的增删改
Linux系统层
timedatectl命令时间时区操作
sar命令用法
Linux 性能调优工具9张图
Linux 特殊权限说明
Linux系统三级等保整改脚本
CentOS 7 停止维护(EOL)后的仓库变动
Linux查看主板内存槽与内存信息
安装麒麟Kylin-v10 Arm64版本到阿里云
CentOS7 多网卡单网关利用策略路由实现源进源出
初始化Linux数据盘(parted)
解决CentOS7下yum命令的异常
EXSI虚机mount出现‘unknown filesystem type 'LVM2_member'’
Linux虚机网卡单队列导致压测CPU无法满载的问题
Linux网络性能优化建议
Linux 修改系统语言环境
LInux文件系统中的默认保留空间 Ext4 vs. XFS
Linux CPU占用率原理与精确度分析
中标麒麟安装Nvidia显卡驱动
Linux主机双网卡同网段同网关配置
Linux 服务层
编译Expat 2.6.2的rpm包并升级
Linux主机挂载共享samba出现普通用户没有写权限的问题
编译OpenSSH 9.3p1的rpm包并升级
CentOS 7.x通过rpm升级OpenSSH到 8.5p1版本
Linux日志切割Logrotate原理和配置详解
systemd下配置sshd监听端口
编译NTP 4.2.8p17的rpm包并升级
编译OpenSSL 1.1.1w的rpm包并升级
linux命令集
磁盘工具集
Linux du 命令
fpsync数据迁移工具
字符处理集
Linux sed 命令
Linux命令输出重定向到变量
使用 paste 合并文件内容
常用调试指令集
编译cmake 3.5.2版本
网络工具集
MTR探测主机间丢包
Linux性能测试
甲骨文主机测试
本文档使用 MrDoc 发布
-
+
home page
编译OpenSSH 9.3p1的rpm包并升级
本文介绍如何通过openssh-9.3p1-1.el7.x86_64.tar.gz制作openssh的rpm安装包,并升级openssh到`openssh-9.3p1-1.el7.x86_64`。 # 下载源码包 OpenSSH需要依赖ZLIB和LibreSSL(替换OpenSSL),因此需要从官网下载源码包。 所需的源码包列表如下: - `OpenSSH` : https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz?spm=a2c6h.25603864.0.0.686840adr8BtKK - `zlib`:http://www.zlib.net/zlib-1.2.13.tar.gz - `libressl`: https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.7.1.tar.gz - `x11-ssh-askpass`: https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/8f2e41f3f7eaa8543a2440454637f3c3/x11-ssh-askpass-1.2.4.1.tar.gz # 编译rpm包 >注意: 操作环境: CentOS 7.9 操作用户:root 1. 创建两个目录SOURCES和SPECS ```bash mkdir -p /root/rpmbuild/{SOURCES,SPECS} ``` 2. 进入SOURCES ```bash cd /root/rpmbuild/SOURCES/ ``` 3. 将上面下载的所有包都上传到`/root/rpmbuild/SOURCES/`目录下 ```bash [root@localhost SOURCES]# tree . . ├── libressl-3.7.1.tar.gz ├── openssh-9.3p1.tar.gz ├── x11-ssh-askpass-1.2.4.1.tar.gz └── zlib-1.2.13.tar.gz 0 directories, 4 files [root@localhost SOURCES]# ``` 4. 解压 ```bash tar xfz openssh-9.3p1.tar.gz ``` 5. 将解压出来的 `openssh.spec` 文件复制到 SPECS 目录 openssh.spec修改版:[【附件】openssh.spec](/media/attachment/2024/06/openssh.spec) ```bash cp openssh-9.3p1/contrib/redhat/openssh.spec ../SPECS/ ``` 6. 执行授权 ```bash chown sshd:sshd /root/rpmbuild/SPECS/openssh.spec ``` 7. 备份默认文件 ```bash cp /root/rpmbuild/SPECS/openssh.spec /root/rpmbuild/SPECS/openssh.spec_def ``` 8. 修改配置选项 【可选项】 - 关掉 no_gnome_askpass 参数 - 关掉 no_x11_askpass 参数 ```bash sed -i -e "s/%global no_gnome_askpass 0/%global no_gnome_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec sed -i -e "s/%global no_x11_askpass 0/%global no_x11_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec ``` - 修改`openssh.spec`文件中的依赖项(编译失败后执行) 如果编译时报类似如下错: ``` error: Failed build dependencies: openssl-devel < 1.1 is needed by openssh-9.3p1-1.el7.x86_64 ``` 可执行如下命令后尝试重新编译 ```bash sed -i -e "s/BuildRequires: openssl-devel < 1.1/# BuildRequires: openssl-devel < 1.1/g" openssh.spec ``` 9. 查看两个文件的不同之处(非必执行) ```bash [root@localhost SPECS]# diff openssh.spec openssh.spec_def 12c12 < %global no_x11_askpass 1 --- > %global no_x11_askpass 0 15c15 < %global no_gnome_askpass 1 --- > %global no_gnome_askpass 0 103c103 < # BuildRequires: openssl-devel < 1.1 --- > BuildRequires: openssl-devel < 1.1 [root@localhost SPECS]# ``` 10. 创建预编译目录 ```bash mkdir -p /root/rpmbuild/SOURCES/ cp /root/rpmbuild/SOURCES/openssh-9.3p1.tar.gz /root/rpmbuild/SOURCES/ cp /root/rpmbuild/SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz /root/rpmbuild/SOURCES/ ``` 11. 安装依赖 ```bash yum install rpm-build gcc make wget openssl-devel xmkmf -y yum install krb5-devel pam-devel libX11-devel libXt-devel -y ``` 12. 执行编译 ```bash cd /root/rpmbuild/SPECS/ rpmbuild -ba openssh.spec ``` 13. 查看编译后的目录结构 ```bash [root@localhost SPECS]# ls -lh /root/rpmbuild/RPMS/x86_64/openssh-*|awk '{print $5,$9}' 653K /root/rpmbuild/RPMS/x86_64/openssh-9.3p1-1.el7.x86_64.rpm 626K /root/rpmbuild/RPMS/x86_64/openssh-clients-9.3p1-1.el7.x86_64.rpm 3.2M /root/rpmbuild/RPMS/x86_64/openssh-debuginfo-9.3p1-1.el7.x86_64.rpm 462K /root/rpmbuild/RPMS/x86_64/openssh-server-9.3p1-1.el7.x86_64.rpm [root@localhost SPECS]# ``` # 升级OpenSSH ## 备份配置 ```bash # 创建备份目录 mkdir -p /root/backup/openssh_updatebak_`date +%Y%m%d` # 备份所有ssh文件 cd /root/backup/openssh_updatebak_`date +%Y%m%d` tar -cvzf etc_ssh.tar.gz /etc/ssh # 备份pam文件,升级后需要恢复原配置 mkdir -p /root/backup/openssh_updatebak_`date +%Y%m%d`/old/etc/pam.d cd /root/backup/openssh_updatebak_`date +%Y%m%d`/old/etc/pam.d cp /etc/pam.d/sshd sshd_`date +%Y%m%d` cp /etc/pam.d/system-auth system-auth_`date +%Y%m%d` cp /etc/pam.d/system-auth-ac system-auth-ac_`date +%Y%m%d` ``` ## 开始升级 >提示: 附件提供编译后的完整rpm包,可直接安装使用 ------------ 1. 卸载并执行升级命令 ```bash # 查看当前版本 rpm -qa openssh # 卸载当前版本 rpm -ev --nodeps openssh # 安装新版本 rpm -Uvh /root/rpmbuild/RPMS/x86_64/*.rpm --force --nodeps ``` 2. 把新的ssh文件备份,并恢复旧版本配置 ```bash # 备份新ssh配置 mkdir -p /root/backup/openssh_updatebak_`date +%Y%m%d`/new/etc/pam.d cd /root/backup/openssh_updatebak_`date +%Y%m%d`/new/etc/pam.d cp /etc/pam.d/sshd sshd_`date +%Y%m%d` cp /etc/pam.d/system-auth system-auth_`date +%Y%m%d` cp /etc/pam.d/system-auth-ac system-auth-ac_`date +%Y%m%d` # 还原旧ssh配置 cd /root/backup/openssh_updatebak_`date +%Y%m%d`/old/etc/pam.d rm -f /etc/pam.d/sshd; cp -p sshd_`date +%Y%m%d` /etc/pam.d/sshd rm -f /etc/pam.d/system-auth; cp -p system-auth_`date +%Y%m%d` /etc/pam.d/system-auth rm -f /etc/pam.d/system-auth-ac; cp -p system-auth-ac_`date +%Y%m%d` /etc/pam.d/system-auth-ac tar -zxvf /root/backup/openssh_updatebak_`date +%Y%m%d`/etc_ssh.tar.gz -C / ``` 3. 开启PAM并设置root用户可以远程连接 ```bash sed -i 's/#UsePAM no/UsePAM yes/g' /etc/ssh/sshd_config sed -i 's/#PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config ``` 4. 创建秘钥并缩小权限 ```bash ssh-keygen -A chmod 600 /etc/ssh -R ``` 5. 重启sshd服务,并检查版本 ```bash systemctl restart sshd sshd -V ``` # 附件[安装包] [【附件】openssh-9.7p1-20.el7.x86_64.rpm](/media/attachment/2024/06/openssh-9.7p1-20.el7.x86_64.rpm) [【附件】openssh-clients-9.7p1-20.el7.x86_64.rpm](/media/attachment/2024/06/openssh-clients-9.7p1-20.el7.x86_64.rpm) [【附件】openssh-server-9.7p1-20.el7.x86_64.rpm](/media/attachment/2024/06/openssh-server-9.7p1-20.el7.x86_64.rpm) [【附件】openssh-askpass-9.7p1-20.el7.x86_64.rpm](/media/attachment/2024/06/openssh-askpass-9.7p1-20.el7.x86_64.rpm) [【附件】openssh-askpass-gnome-9.7p1-20.el7.x86_64.rpm](/media/attachment/2024/06/openssh-askpass-gnome-9.7p1-20.el7.x86_64.rpm) [【附件】openssh-debuginfo-9.7p1-20.el7.x86_64.rpm](/media/attachment/2024/06/openssh-debuginfo-9.7p1-20.el7.x86_64.rpm)
Nathan
June 12, 2024, 5:14 p.m.
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
PDF文件
Docx文件
share
link
type
password
Update password