惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
M
MIT News - Artificial intelligence
S
SegmentFault 最新的问题
博客园 - 叶小钗
量子位
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - Franky
博客园 - 司徒正美
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
人人都是产品经理
人人都是产品经理
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
博客园_首页
U
Unit 42
月光博客
月光博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

lvbibir's Blog

shell | 磁盘空间分析脚本 Linux cat 和 tee 命令写入文件 python | 使用 uv 管理你的 python 环境 Claude Code 完整配置指南 windows | mihomo 内核独立部署指南 linux | 磁盘扩容 wsl | 释放长久运行占用的磁盘空间 mysql | 线程上限问题处理 麒麟 7.6 安装谷歌 OTP 认证模块 suse 12sp5 升级 openssh 及 openssl suse 12sp5 部署 mysql 5.7 《谁的青春不迷茫》 docker | centos7 部署 docker vim | 基础配置和使用 windows | rime 输入法 & 雾凇方案 shell | sshpass 批量传输文件及执行命令 wsl | 原生 linux 方式安装 docker nodejs | fnm + pnpm 开发环境配置 wsl | 安装配置 miniconda 虚拟环境 wsl | 自动更新系统代理 wsl | bashrc 环境变量不正确加载的处理方法 wsl | win10 安装 wsl2 troubleshooting | ssh 成功但是 scp 失败 linux | 常用命令总结 docker 部署 piclist shell | 检测网站存活并自动钉钉告警 Zabbix | 监控端口连通性并自动追踪 TCP 路由 windows | 自定义开机快速启动项 windows | miniconda 配置 python 虚拟环境 Zabbix | 监控主机到指定 ip 的流量大小
openssh 源码打包编译成 rpm 包
lvbibir · 2021-09-01 · via lvbibir's Blog

0 前言

本文参考以下链接:

1 openssh-9.5p1

1.1 编译环境

  • 编译平台: 华为私有云
  • 系统版本: 麒麟 v7.4
  • 系统内核: 3.10.0-693.43.1.el7.x86_64

软件版本:

  • openssh-9.5p1.tar.gz
  • openssl-3.0.11.tar.gz
  • x11-ssh-askpass-1.2.4.1.tar.gz

编译脚本项目地址

1.2 编译步骤

添加 yum 源略, 云平台自带 yum 源

创建工作目录

mkdir -p /opt/openssh-9.5/openssh-9.5p1-update-script/resource

下载 编译脚本, 上传至服务器 /opt/openssh-9.5 目录并解压

cd /opt/openssh-9.5; unzip openssh-rpms-main.zip

yum 安装依赖工具

yum clean all; yum makecache
yum install wget vim gdb imake libXt-devel gtk2-devel  rpm-build zlib-devel openssl-devel gcc perl perl-IPC-Cmd perl-devel pam-devel unzip krb5-devel  libX11-devel  initscripts

默认 openssh 源码中是没有 ssh-copy-id 相关参数的,如果直接编译安装,会发现安装后没有 ssh-copy-id 命令,因此如果需要用到该命令,需要修改编译参数控制文件 openssh.spec, 本次安装使用的操作系统是 el7 系列的

vim /opt/openssh-9.5/openssh-rpms-main/el7/SPECS/openssh.spec

如下位置添加一行

install -m755 contrib/ssh-copy-id $RPM_BUILD_ROOT/usr/bin/ssh-copy-id

image-20231114160828131

第二处添加

%attr(0755,root,root) %{_bindir}/ssh-copy-id

image-20231114161012601

下载各源码包上传至服务器 /opt/openssh-9.5/openssh-rpms-main/downloads

image-20231114161838284

执行编译打包脚本

cd /opt/openssh-9.5/openssh-rpms-main/
# 修改 version.env 文件, 使版本号对应
cat version.env
bash compile.sh

脚本应正常运行, 查看编译后的 rpm 包

cd /opt/openssh-9.5/openssh-rpms-main/el7/RPMS/x86_64/; ls

image-20231114162423846

1.3 升级脚本

拷贝编译后的包到 resource 目录

cp /opt/openssh-9.5/openssh-rpms-main/el7/RPMS/x86_64/*.rpm /opt/openssh-9.5/openssh-9.5p1-update-script/resource/

编写升级脚本

cat > /opt/openssh-9.5/openssh-9.5p1-update-script/run.sh <<EOF
#!/bin/bash
#
# Author  : lvbibir
# Email   : lvbibir@gmail.com
# Version : V1.0
# Time    : 2023-11-14 16:48:30
# Desc    : A script for update ssh

set -e
ssh -V
/bin/cp /etc/pam.d/sshd /etc/pam.d/sshd_bak
/bin/cp /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
# 如有 yum 源推荐使用 yum 方式
# yum localinstall -y resource/openssh-*.rpm
rpm -Uvh resource/openssh-*.rpm
/bin/cp /etc/pam.d/sshd_bak /etc/pam.d/sshd
/bin/cp /etc/ssh/sshd_config_bak /etc/ssh/sshd_config
rm -rf /etc/ssh/ssh*key
systemctl daemon-reload
systemctl restart sshd
ssh -V

EOF

chmod 755 /opt/openssh-9.5/openssh-9.5p1-update-script/run.sh

打包

cd /opt/openssh-9.5/
tar zcf openssh-9.5p1-update-script.tar.gz openssh-9.5p1-update-script

上传压缩包至服务器 /opt/ 目录

cd /opt; tar zxf openssh-9.5p1-update-script.tar.gz
cd /opt/openssh-9.5p1-update-script/; sh run.sh

以上.