CentOS7 使用RPMBUILD 编译 Openssh rpm包并安装

2023-05-16

若要进行生产环境的操作,请务必看完整篇文档
实验环境:Centos7.4 离线系统
目前已经成功完成了openssh 9.1p1的编译

1、准备openssh源码包

在home目录开始,设置工作目录

cd ~

从openssh.com下载openssh源码包

# 下载需要的安装包
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.1p1.tar.gz

下载x11-ssh-askpass x11 口令对话框插件源码包,可选,如无需x11-ssh-askpass可通过修改spec文件跳过该源码包

wget 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

验证文件签名,可选

# 从openbsd下载签名公钥
wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/RELEASE_KEY.asc
# 导入公钥
gpg --import RELEASE_KEY.asc
# 下载源码包签名
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.1p1.tar.gz.asc
# 检验签名
gpg --verify openssh-9.1p1.tar.gz.asc openssh-8.8p1.tar.gz

2、安装rpm-build及编译环境

安装rpm-build包及其他编译需要的包

yum install rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel unzip

添加askpass支持需要增加安装依赖包libxXt-devel imake gtk2-devel

yum install libXt-devel imake gtk2-devel

创建rpm-build工作目录,SOURCES放置源码包,SPECS放置配置文件

mkdir ~/rpmbuild
mkdir ~/rpmbuild/SOURCES
mkdir ~/rpmbuild/SPECS

补充说明,rpmbuild下目录

  • BUILD 编译rpm包的临时目录
  • BUILDROOT 编译后生成的软件临时安装目录
  • RPMS 最终生成的可安装rpm包的所在目录
  • SOURCES 所有源代码和补丁文件的存放目录
  • SPECS 存放SPEC文件的目录(重要)
  • SRPMS 软件最终的rpm源码格式存放路径

将源码包拷贝至rpmbuild工作目录

cp ~/openssh-8.8p1.tar.gz ~/rpmbuild/SOURCES 

如需要添加askpass支持

cp ~/x11-ssh-askpass-1.2.4.1.tar.gz ~/rpmbuild/SOURCES

3、提取spec文件

从源码包提取spec文件

tar -zxvf openssh-8.8p1.tar.gz openssh-8.8p1/contrib/redhat/openssh.spec
cp ~/openssh-8.8p1/contrib/redhat/openssh.spec ~/rpmbuild/SPECS

4、修改spec文件

如无需askpass可通过修改spec文件参数跳过x11-ssh-askpass源码包,需要注释的地方有3个

# Do we want to disable building of x11-askpass? (1=yes 0=no)
%global no_x11_askpass 1

# Do we want to disable building of gnome-askpass? (1=yes 0=no)
%global no_gnome_askpass 1

#注释掉Source1 x11-ssh-askpass包引用
Source1: http://www.jmknoble.net/software/x11-ssh-askpass/x11-ssh-askpass-%{aversion}.tar.gz

解决openssl-devel<1.1 报错
目前在9.1p1版本也会存在这个报错,需要手动注释
注释掉以下配置项
#BuildRequires: openssl-devel < 1.1

若编译无法通过,出现以下提示
错误:发现已安装(但未打包的)文件:
/usr/libexec/openssh/ssh-sk-helper
/usr/share/man/man8/ssh-sk-helper.8.gz

RPM 构建错误:
发现已安装(但未打包的)文件:
/usr/libexec/openssh/ssh-sk-helper
/usr/share/man/man8/ssh-sk-helper.8.gz

验证发现自带spec文件为2018年最后更新,ssh-sk-helper为2019年12月新增,spec文件未%file中未包含该文件
修改spec文件

在%attr(0644,root,root) %{_mandir}/man8/ssh-pkcs11-helper.8*后追加

%attr(0755,root,root) %{_libexecdir}/openssh/ssh-sk-helper
%attr(0644,root,root) %{_mandir}/man8/ssh-sk-helper.8*

5、编译并生成rpm

cd ~/rpmbuild/SPECS
rpmbuild -ba openssh.spec

超多输出,只要最后是“+ exit 0”就是成功生成
生成后的文件存放在~/rpmbuild/RPMS
因为实在x86_64做的编译所以在~/rpmbuild/RPMS/x86_64目录中

/home/<user_name>/rpmbuild/RPMS/x86_64
# 如果没有编译askpass的话,不会生成 askpass包,所以实际生成的rpm包数量为4个或者6个(带askpass)
[user1@localhost x86_64]$ ll
总用量 4536
-rw-rw-r--. 1 user1 user1 602772 625 15:10 openssh-8.8p1-1.el7.centos.x86_64.rpm
-rw-rw-r--. 1 user1 user1 44312 625 15:10 openssh-askpass-8.8p1-1.el7.centos.x86_64.rpm
-rw-rw-r--. 1 user1 user1 24696 625 15:10 openssh-askpass-gnome-8.8p1-1.el7.centos.x86_64.rpm
-rw-rw-r--. 1 user1 user1 580532 625 15:10 openssh-clients-8.8p1-1.el7.centos.x86_64.rpm
-rw-rw-r--. 1 user1 user1 2958016 625 15:10 openssh-debuginfo-8.8p1-1.el7.centos.x86_64.rpm
-rw-rw-r--. 1 user1 user1 419928 625 15:10 openssh-server-8.8p1-1.el7.centos.x86_64.rpm
[user1@localhost x86_64]$

6、安装

安装之前请尽量开始telnet服务
还有,备份配置,一定要做!

mkdir ~/ssh_bak
mkdir ~/ssh_bak/service
# 备份PAM配置
cp /etc/pam.d/sshd ~/ssh_bak/
# 备份sshd_config
cp /etc/ssh/sshd_config ~/ssh_bak/
# 备份sshd的启动服务
cp /usr/lib/systemd/system/sshd* ~/ssh_bak/service/

升级方式安装

现在不推荐使用卸载安装的方式,因为这种方式会产生一些问题,导致sshd服务不能够自动启动。

1、解压安装包,进入存放rpm的目录
2、执行yum安装命令:

yum -y localinstall openssh*.rpm

3、恢复PAM设置

cp -f ~/ssh_bak/sshd /etc/pam.d/

自打包未包含systemd管理服务的service文件,需要自行添加,因centos自带rpm包中包含原始包中不存在的sshd-keygen可能会出现未找到文件错误,需谨慎执行,如不使用service文件管理使用chkconfig管理sshd的开机启动。

4、修改key文件访问权限

#修改/etc/ssh/ssh_host_* 权限
chmod 400 /etc/ssh/ssh_host_*

5、恢复配置文件(可选)

注意,该步骤为可选步骤,仅在服务启动失败时供排查报错或者恢复配置使用!

cp -f ~/ssh_bak/sshd /etc/sysconfig/sshd
cp -f ~/ssh_bak/pam.d/sshd /etc/pam.d/sshd
cp -f ~/ssh_bak/service/* /usr/lib/systemd/system/sshd*

6、修改sshd_config

安装时会创建新版配置文件sshd_config.rpmnew,如果原有的配置无法生效可以参考新的配置

vim /etc/ssh/sshd_config

## 务必保证以下几项设置都正确!否则会进不了服务器!
# 允许root登录
PermitRootLogin yes
# 允许密码登录
PasswordAuthentication yes

7、尝试重启sshd进程

systemctl restart sshd
# 如果是通过sshd.socket服务启动可以执行以下命令
systemctl restart sshd.socket

8、尝试建立新的ssh连接

ssh -v localhost

注意查看输出的远端版本信息,如果此时连接不上,需要立即排查以上设置是否正确。

...
debug1: Local version string SSH-2.0-OpenSSH_9.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_9.1
debug1: compat_banner: match: OpenSSH_9.1 pat OpenSSH* compat 0x04000000
...

SecureCRT7.1密钥交换算法不在OpenSSH8.3默认列表中,XShell6无此问题
需要在配置文件中增加SecureCRT7.1支持的算法。

sshd -T | grep kexalgorithms>> /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
#或者手动在KexAlgorithms添加 diffie-hellman-group14-sha1

后续补充内容

20210426 补充
在一次升级过程中,发现升级后使用sshd -V命令查看sshd版本,结果返回的还是之前的版本(Centos7.8 openssh 7.9p1 升级到 openssh 8.6p1),经过研究发现,sshd命令被映射到两个文件,一个是/usr/sbin/sshd,这个是默认的启动文件,查看版本,是8.6p1,另一个在不同的目录中,在bash中调用sshd会使用另外一个老版本的sshd,所以不能通过sshd -V验证当前已经使用的sshd版本,最好是 ssh -v root@ip 命令来验证。另外,最好在PATH中删除老版本的sshd路径和ssh路径,以免产生其他不必要的错误操作。
20210730 补充
之前在升级Openssh时由于没有恢复/etc/sysconfig/sshd文件导致其自动启动会失败,在机器重启后sshd服务启动不了,进不了机器。

附件一:降级

yum -y downgrade openssh-server-7.4p1-21.el7 openssh-clients-7.4p1-21.el7 openssh-7.4p1-21.el7
/bin/cp -f ~/ssh_bak/sshd /etc/pam.d/
/bin/cp -f ~/ssh_bak/ssh_config /etc/ssh/
/bin/cp -f ~/ssh_bak/sshd_config /etc/ssh/

附件二:使用Telnet登录并进行安装

以root登录ssh
安装telnet服务

systemctl stop firewalld
systemctl disable firewalld
yum install telnet-server
yum install xinetd
# 若不能在线安装,需要下载rpm包,不会太多,一共两三个
systemctl start telnet.socket
systemctl start xinetd
systemctl enable telnet.socket
systemctl enable xinetrd

安装完成验证ssh登录成功,并在服务器重启后仍能使用ssh登录,则:

#启动firewalld,
systemctl start firewalld
systemctl enable firewalld
#关闭telnet服务,
systemctl stop telnet.socket
systemctl stop xinetd
systemctl disable telnet.socket
systemctl disable xinetd
#卸载telnet-server,
yum erase telnet-server

若要修改 telnet的端口号,其配置文件在:/usr/lib/systemd/system/telnet.socket

附件三:其他参考

/etc/pam.d/sshd

[root@localhost ~]# cat /etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
auth substack password-auth
auth include postlogin
# Used with polkit to reauthorize users in remote sessions
-auth optional pam_reauthorize.so prepare
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session include password-auth
session include postlogin
# Used with polkit to reauthorize users in remote sessions
-session optional pam_reauthorize.so prepare

/usr/lib/systemd/system/sshd-keygen.service

[Unit]
Description=OpenSSH Server Key Generation
ConditionFileNotEmpty=|!/etc/ssh/ssh_host_rsa_key
ConditionFileNotEmpty=|!/etc/ssh/ssh_host_ecdsa_key
ConditionFileNotEmpty=|!/etc/ssh/ssh_host_ed25519_key
PartOf=sshd.service sshd.socket

[Service]
ExecStart=/usr/sbin/sshd-keygen
Type=oneshot
RemainAfterExit=yes
/usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
/usr/lib/systemd/system/sshd@.service

[Unit]
Description=OpenSSH per-connection server daemon
Documentation=man:sshd(8) man:sshd_config(5)
Wants=sshd-keygen.service
After=sshd-keygen.service

[Service]
EnvironmentFile=-/etc/sysconfig/sshd
ExecStart=-/usr/sbin/sshd -i $OPTIONS
StandardInput=socket

/usr/lib/systemd/system/sshd.socket
[Unit]
Description=OpenSSH Server Socket
Documentation=man:sshd(8) man:sshd_config(5)
Conflicts=sshd.service

[Socket]
ListenStream=22
Accept=yes

[Install]
WantedBy=sockets.target

lib/systemd/system/sshd.service

[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
~                         

/lib/systemd/system/sshd.socket

[Unit]
Description=OpenSSH Server Socket
Documentation=man:sshd(8) man:sshd_config(5)
Conflicts=sshd.service

[Socket]
ListenStream=22
Accept=yes

[Install]
WantedBy=sockets.target

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOS7 使用RPMBUILD 编译 Openssh rpm包并安装 的相关文章

  • SVN快速使用入门

    协同开发时 xff0c 我们时常会听说SVN这个词 xff0c 那么SVN到底是什么 xff1f 又是怎么玩的 xff1f 笔者在初探SVN后进行一个简单的总结 SVN xff1a Subversion的简称 xff0c 是一个开放源代码的
  • 解决Red Hat6.0以上使用yum命报错Loaded plugins: product-id, refresh-packagekit, security, subscription-manager

    什么是yum xff1a Yum xff08 全称为 Yellow dog Updater Modified xff09 是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器 基于RPM包管理 xff0c 能够从
  • Cause: org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found

    org apache ibatis exceptions PersistenceException Error updating database Cause org apache ibatis executor ExecutorExcep
  • [Linux] 记录一次批量开关机操作

    最近公司需要停一部分机器测试下业务稳定性 关停很简单 ansible 就可以了 xff0c 一句命令 ansible guanji m command a 34 shutdown h now 34 定义的关机组 guanji 过了两周 xf
  • 生活篇

    春天 xff0c 一个诗情画意的季节 xff0c 一个生机勃勃的季节 春天 xff0c 为我们带来了温暖 xff0c 为大地带来了生机 在这个春意盎然的季节 xff0c 大自然也开始了她们的春天交响曲 我喜欢三月 xff0c 我也讨厌三月
  • WebStorm 2023.1 最新变化【附带ChatGPT教程】

    ChatGPT开源公众号 xff1a https gitee com wy521a astar weixin mp 观看更新概览视频 在浏览器中打开更新变化 WebStorm 2023 1 最新变化 框架和技术 Astro 支持 备受期待的
  • Ubuntu18.04解决gnome-tweak-tool安装后shell主题提示user-theme extension没有启用的问题

    换用Ubuntu18之后 xff0c 桌面又回到了gnome xff0c 因此找到了gnome tweak tool对桌面进行美化 1 安装gnome tweak tool sudo apt get install gnome tweak
  • 多生产者和多消费者问题

    题目描述 桌子上有一个盘子 xff0c 每次只能向其中放入一个水果 爸爸专门向盘子里面放苹果 xff0c 妈妈专门向盘子里面放橘子 xff1b 只有盘子为空时 xff0c 爸爸或妈妈才可以向其中放入水果 xff1b 仅当盘子里有自己需要的水
  • ssh远程连接服务器常用命令

    命令行下 xff0c 使用ssh 远程登录服务器 ssh 39 用户名 39 64 39 IP地址 39 不用加 39 号 xff0c 这里是为了作区分 39 用户名 39 64 39 IP地址 39 39 s password xxx 项
  • 记录在安卓webview上,gif,apng,pixi.js,lottie-web动画导致闪屏问题

    随着公司项目对动画要求越来越高 xff0c 从由美术提供简单的gif 或者css js开发简单动画变成了使用渲染引擎pixi js使用序列帧动画 xff0c 或者使用龙骨 xff0c spine等更加复杂炫酷的动画 但是发现屏幕在播放动画的
  • 黑苹果_万能OpenCore_0.8.4_EFI

    对于喜欢折腾黑苹果的人来说 xff0c 安装Mac系统就是家常便饭 xff0c 其中最重要的就是EFI的配置 xff0c 配置出一个适合自己电脑的EFI很重要 xff0c 今天发布这篇文章就是为了提供给新加入的伙伴们 xff0c 让更多的伙
  • 黑苹果_OpenCore_0.8.4各项功能精解

    黑苹果已经延续有些年了 xff0c 引导也更新换代过好几次 xff0c 安装黑苹果的第一个条件就是需要拥有一个支持引导苹果系统的EFI xff0c 否则 xff0c 连苹果皮都看不到 xff0c 虽然网上可以直接下载EFI xff0c 但是
  • Github域名解析连接慢问题

    Github域名解析连接慢问题 1 Github访问慢问题2 Github连接解决方案2 1 使用 Gitee 的镜像仓库2 2 配置本地的 hosts 文件 3 DNS域名解析分析3 1 根域名服务器3 1 顶级域名服务器3 1 域名解析
  • C++判断素数(求素数)

    素数又称质数 所谓素数是指除了 1 和它本身以外 xff0c 不能被任何整数整除的数 xff0c 例如17就是素数 xff0c 因为它不能被 2 16 的任一整数整除 思路1 xff1a 因此判断一个整数m是否是素数 xff0c 只需把 m
  • Directx工具修复工具,专注修复C++动态链接DLL文件

    问题 xff1a 方法一 xff1a 可以直接去360管家中搜索DirectX xff0c 然后下载 xff0c 进行修复 方法二 xff1a 如下 xff1a DirectX修复工具最新版 xff1a DirectX Repair V3
  • shell脚本实现在任意虚拟机上 一键重启/关闭 多台虚拟机

    shell脚本实现在任意虚拟机上 一键重启 关闭 多台虚拟机 span class token operator span span class token operator span bin span class token operat
  • ChatGPT体验地址,超多功能,附公众号源码

    GPT 说明效果演示地址体验公众号源码 说明 ChatGPT是一种基于深度学习的自然语言处理 xff08 NLP xff09 技术 xff0c 它可以实现自然的文字对话 ChatGPT是基于预训练的语言模型 xff0c 使用大量的数据和计算
  • Android Native内存泄漏案例

    文章目录 背景现状malloc debugLeakTracer综合评估功能性能稳定性治理实践 案例 使用Raphael 定位内存泄漏 项目中遇到一个内存泄漏的情形 xff1a usb camera预览时出现了内存泄漏 xff0c 但内存泄漏
  • 【The 2017 BAPC】C题-Collatz Conjecture ---- GCD+优化去重

    题意 给你一个大小为n的序列 xff0c 让你求里面所有子串的GCD xff0c 求里面最多有多少不同的GCD 思路 xff1a 利用集合set tmp维护 到当前子串的最后一个元素的所有GCD xff0c set ans保存所有不同种类的
  • WGS84与大地2000坐标转换(Java,C#,Dart)

    一 坐标转换的必要性 平面坐标在道路测绘 隧道测量 农业建筑业等室外勘测等方面有着广泛的应用 各行业基本都会涉及到移动端测量之后不能满足屏幕坐标 所以需要经纬度的转换 移动端勘测结果都是WGS84坐标或者GCJ 02格式坐标 而实际工程项目

随机推荐

  • Flutter百度地图

    Flutter百度地图 重构项目 一 实现效果如下图 qq交流群 群号 730772561 1 地图中任意踩点进行杆塔和设备的新建 对与点和线进行关联 2 对于点和线进行各种操作 3 自定义区域下载离线地图 4 热烈线 5 自定义瓦片地图
  • Jetpack-Compose-自定义绘制

    上节课我们简单的利用了一下自定义裁剪和自定义就能玩出如下简单案例 效果不错 这节课咋们来看看Compose自定义绘制能不能花里胡哨 一 Compose自定义 自定义 一个应用的可创造性往往离不开人们的千奇百怪想象和用户变化万千的需求 自定义
  • JetPack-Compose - Flutter 动态UI?

    一 Flutter 初遇 2018 06月左右入坑Flutter 于是拿出美团和痘印等好看的界面感受了一波Flutter UI和绘制等写了三天的Demo也感受到了Flutter强大 当时匆匆忙忙就写了相关Demo上传了Github 不知不觉
  • Compose for Desktop (Kolin跨平台编写Mac微信应用)

    春光不自留 xff0c 莫怪东风恶 掘金博客地址 创作不易 希望点赞 Compose for Desktop Compose是由Kotlin语言快速编辑界面的框架 xff0c 基于谷歌的现代工具箱 xff0c 由JetBrains为您带来
  • Android层叠式卡片效果实现!(高大上)

    一 xff0c 上班闲来无聊 xff0c 撸发代码 实现Android层叠卡片效果如下图 xff01 1 我们可以随意方向的拖动这个卡片 2 我们可以将卡片放在一起显示且有层叠式效果 3 我们可以将最上层的卡片移除 xff0c 当移除最底层
  • Java中如何将一个数组分割成多个等长度的数组

    Java中如何将一个数组分割成多个等长度的数组 xff0c 最后剩下的为一个素组 先看图分析数据提取公式分装代码 1 如下我们需求 最近朋友android项目中有一个需求如下 xff1a 这一个长集合 item0 item1 item2 i
  • 作为移动端(Android)开发的我已被前端框架Bootstrap所折服

    一 xff0c Bootstrap介绍 xff1a 一年前的我还沉浸在移动端各种适配和优化中不能自拔 xff0c 为了适配市场的各种分辨率 xff0c 我拿着谷歌百分比布局 xff0c 也有生成各中分辨率下的尺寸文件 xff0c 或通过测量
  • Mac安装Stable Diffusion教程【超详细教程】附带安装包

    Mac安装Stable Diffusion教程 本机配置Mac安装Stable Diffusion教程 配带官方说明重要注意事项安装所需文件已上传网盘自动安装新安装 xff1a 自动安装现有安装 xff1a 下载稳定扩散模型故障排除Web
  • Flutter三天学习基础-------一天搞定项目

    Flutter学习三天搞定项目 2019年 xff0c 相继推出了flutter免费视频教学 希望能够帮助初学者 最终搞定b站一二级界面 xff1a https space bilibili com 265453330 spm id fro
  • 玩转python(一)——微信远程控制电脑

    1 综述 这是一个挺有意思的 python 程序 xff0c 基于 itchat 实现微信控制电脑 你可以通过在微信发送命令 xff0c 来拍摄当前电脑的使用者 xff0c 然后图片会发送到你的微信上 甚至你可以发送命令来远程关闭电脑 效果
  • Centos7 离线安装 K3S

    基于版本 v1 19 3 43 k3s2 1 下载相关资源 k3s airgap imagesk3s 二进制文件k3s 安装脚本docker rpm包 含containerd io docker ce docker cli containe
  • Linus 2020-11月最快Intel游戏电脑 清单

    视频链接 xff1a https www bilibili com video BV1Ey4y167YM 配件型号备注CPUi9 10900K5 7GHz 现在比起AU差些主板华硕Maximus XII Extreme超频主板内存镁光 Ba
  • Linuz目前最快AMD 游戏电脑! 截至2020年11月29日

    视频地址 xff1a https www bilibili com video BV1ip4y167L5 这一次是DigitalStorm直接发的整机AventumX xff0c 配置如下 xff1a 硬件型号备注CPURyzen 5950
  • 运维大镖客:Linux 合规配置脚本第一版

    还在为Linux合规配置检查不过关而发愁吗 xff1f 最新的配置合规脚本来啦 xff01 20220609 作者注 xff1a 之后的脚本将会在新的网络空间安全付费专栏发布 xff0c 如需要更新的版本 xff0c 请移步专栏观看 spa
  • MongoDB 4.2 数据迁移与备份指南

    MongoDB 4 2 数据迁移与备份指南 来源于MongoDB Manual 4 2 https docs mongodb com v4 2 tutorial restore replica set from backup 原文 xff1
  • Minio 代理 Alibaba Cloud OSS

    Minio 代理 Alibaba Cloud OSS 在2017年12月份Minio引入Aliyun OSS 支持到master分支 xff0c 但是在2020年4月因为License问题导致阿里云OSS支持被移除 xff0c 后来2020
  • Rancher 2.4.x 单容器证书过期&证书轮换方法

    Rancher 2 4 x 官方文档之证书轮换 https rancher2 docs rancher cn docs rancher2 cluster admin certificate rotation index 错误现象 xff1a
  • Docker与Firewalld冲突怎么办?教你几招搞定docker网络

    docker ce默认会采用桥接网络 xff0c 它会通过iptables来管理它的容器之间的通信和容器与宿主机的通信 xff0c 如果同时启用了firewalld服务 xff0c 他们都会对iptables里面的转发链写入规则 xff0c
  • 当ChatGPT遇上StableDiffusion ChatGPT指导StableDiffusion绘画

    ChatGPT指导StableDiffusion 前言开始使用场景1 xff1a 繁华的街道场景2 xff1a 桥上的女生 项目及教程地址 xff0c 附GPT访问地址安装教程及安装包地址 xff1a 点我下载开源项目 xff1a 点我下载
  • CentOS7 使用RPMBUILD 编译 Openssh rpm包并安装

    若要进行生产环境的操作 xff0c 请务必看完整篇文档 实验环境 xff1a Centos7 4 离线系统 目前已经成功完成了openssh 9 1p1的编译 1 准备openssh源码包 在home目录开始 xff0c 设置工作目录 sp