Centos7.9编译OpenSSH的rpm安装包并升级OpenSSH

本文介绍如何通过openssh-9.0p1.tar.gz制作openssh的rpm安装包,并升级openssh到9.0。

  1. 下载openssh-9.0p1.tar.gz

  2. 编译成rpm

  3. 备份原有ssh服务文件

  4. 升级ssh版本

制作openssh的rpm包以及安装过程中出现的问题可查看以下文章:https://www.cnblogs.com/JimmyThomas/p/16257866.html

OpenSSH需要依赖ZLIB和LibreSSL(替换OpenSSL),因此需要从官网下载三者的源码包。
版本及官网链接:
zlib-1.2.12.tar.gz http://www.zlib.net/
libressl-3.5.2.tar.gz https://www.libressl.org/
openssh-9.0p1.tar.gz http://www.openssh.org/

如有需要可自行升级

下载

请从官方网站或者国内镜像下载相关安装包。

官网下载地址:http://www.openssh.com/releasenotes.html

国内镜像下载地址:https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/

百度网盘:https://pan.baidu.com/s/1gqpH2xeOkYHJ0CiztbmqoQ
提取码:imfg

  • openssh-9.0.tar.gz(适用于BSD)

  • openssh-9.0p1.tar.gz(适用于Linxu)

制作RPM包

  1. 创建两个目录SOURCES和SPECS

mkdir -p /usr/src/redhat/{SOURCES,SPECS}

  1. 进入SOURCES

cd /usr/src/redhat/SOURCES/

  1. 将上面下载的openssh-9.0p1.tar.gz包上传到/usr/src/redhat/SOURCES/目录

  2. 解压出整包 从里面提取出 openssh.spec 该文件

tar xfz openssh-9.0p1.tar.gz openssh-9.0p1/contrib/redhat/openssh.spec

  1. 移动解压出来的 openssh.spec 文件到 SPECS 目录

mv openssh-9.0p1/contrib/redhat/openssh.spec ../SPECS/

  1. 执行chown

chown sshd:sshd /usr/src/redhat/SPECS/openssh.spec

  1. openssh.spec_def

cp /usr/src/redhat/SPECS/openssh.spec /usr/src/redhat/SPECS/openssh.spec_def

  1. 修改几个配置选项 【可选项】,关掉no_gnome_askpass no_x11_askpass这两个参数

sed -i -e “s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g” /usr/src/redhat/SPECS/openssh.spec

sed -i -e “s/%define no_x11_askpass 0/%define no_x11_askpass 1/g” /usr/src/redhat/SPECS/openssh.spec

  1. 可以查看两个文件的不同之处(非必执行)

diff openssh.spec openssh.spec_def

  1. 创建预编译目录

mkdir -p ~/rpmbuild/SOURCES/

cp /usr/src/redhat/SOURCES/openssh-9.0p1.tar.gz ~/rpmbuild/SOURCES/

  1. 安装依赖

yum install rpm-build gcc make wget openssl-devel krb5-devel pam-devel libX11-devel xmkmf libXt-devel

  1. 执行编译

cd /usr/src/redhat/SPECS/

rpmbuild -ba openssh.spec

  1. 查看编译后的目录结构

查看目录结构:tree -L 2 /root/rpmbuild/

如出现:

Centos7.9编译OpenSSH的rpm安装包并升级OpenSSH

可以直接跳过,执行下面的

Centos7.9编译OpenSSH的rpm安装包并升级OpenSSH
  1. 查看rpm包

ll /root/rpmbuild/RPMS/x86_64/openssh-*

Centos7.9编译OpenSSH的rpm安装包并升级OpenSSH

备份原有的openssh服务

  1. 创建备份目录:mkdir -p /war/backup/openssh_def # 目录根据自己喜好随意起名即可

  2. 进入:cd /war/backup/openssh_def

  3. 将/etc/ssh目录下的所有文件压缩备份到当前目录:tar -cvzf etc_ssh.tar.gz /etc/ssh

  4. 升级rpm 升级后会修改/etc/pam.d/sshd 文件,需要备份此文件,升级完还原此文件。

cp /etc/pam.d/sshd /etc/pam.d/system-auth .

cp -p /etc/pam.d/sshd /etc/pam.d/sshd_date +%Y%m%d

cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_date +%Y%m%d

开始升级

  1. 执行升级命令

rpm -Uvh /root/rpmbuild/RPMS/x86_64/*.rpm –force –nodeps

Centos7.9编译OpenSSH的rpm安装包并升级OpenSSH
  1. 把新的 /etc/pam.d/sshd文件备份,并恢复原来版本的 /etc/pam.d/sshd

cp -p /etc/pam.d/sshd /root/sshd.afterupgrade

cp /war/backup/openssh_def/sshd /etc/pam.d/

  1. 开启PAM

vi /etc/ssh/sshd_config

UsePAM yes

注意:

本人测试开启后能连接上,

但是如果开启后导致连接不上就需要关闭了

  1. 重启sshd服务

CentOS 6:service sshd restart

CentOS 7:systemctl restart sshd

  1. 设置root用户可以远程连接

echo “PermitRootLogin yes” >> /etc/ssh/sshd_config

需要重启ssh服务

  1. 其他操作
1 # cp contrib/redhat/sshd.pam /etc/pam.d/sshd
 2 # pam有研究的可以启用下,本人不会配置,开了pam会导致ssh连不上
 3 # echo "UsePAM no" >> /etc/ssh/sshd_config
 4 # 允许root用户通过ssh登录
 5 # echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
 6 # 开启SSH秘钥登录
 7 # echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config
 8 # 开启远程GUI支持
 9 # echo "X11Forwarding yes" >> /etc/ssh/sshd_config
10
11 # 注册服务,并设置开机启动
12 # cp -p contrib/redhat/sshd.init /etc/init.d/sshd
13 # chown root.root /etc/init.d/sshd
14 # chmod +x /etc/init.d/sshd
15 # chkconfig  --add  sshd
16 # chkconfig  sshd  on
17 # chkconfig  --list  sshd
18 # systemctl restart sshd

cp -p contrib/redhat/sshd.init /etc/init.d/sshd
chown root.root /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig –add sshd
chkconfig sshd on
chkconfig –list sshd
systemctl restart sshd

Original: https://www.cnblogs.com/JimmyThomas/p/16257161.html
Author: JimmyThomas
Title: Centos7.9编译OpenSSH的rpm安装包并升级OpenSSH

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582514/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • win7系统 右击任务栏 资源管理器 弹出菜单“已固定”和“最近”项目不显示故障处理

    故障描述:右击任务栏中资源管理器图标时,弹出菜单只有”资源管理器”和”解除锁定”两个项目,”已固定”和&#8…

    Linux 2023年6月8日
    0113
  • ELF文件的笔记

    ELF 说明 ELF文件的英文全称是 The Executable and Link Format, 最初是由UNIX系统实验室开发、发布的ABI(Application Bina…

    Linux 2023年6月7日
    0121
  • JavaScript 做的网页版扫雷小游戏

    闲来无事做了个网页版扫雷小游戏,基本实现了扫雷客户端的全部功能。但是感觉面向对象用的还不是很好,有待优化。 游戏地址:http://twgdh.com/saolei/index.h…

    Linux 2023年6月13日
    0117
  • python 练习题:请利用循环依次对list中的每个名字打印出Hello, xxx!

    方法一: python;gutter:true; -<em>- coding: utf-8 -</em>- 请利用循环依次对list中的每个名字打印出Hel…

    Linux 2023年6月8日
    097
  • redis的事务不是原子性

    Reference: https://blog.csdn.net/u011692780/article/details/81213010 一、事务的四大特性 关系型数据库的事务具有…

    Linux 2023年5月28日
    088
  • WEB自动化-06-命令行运行Cypress

    6 命令行运行Cypress Cypress命令行的运行基本语法格式如下所示: cypress <command> [options] command代表运行的命令,是…

    Linux 2023年6月7日
    0118
  • 【凸优化】1 仿射集,凸集,锥

    1. 仿射集 Affine Sets 1)定义 定义1:(x_1, x_2)为集合(C\subseteq \mathbb{R}^n)中的任意两点,如果穿过(x_1,x_2)的 直线…

    Linux 2023年6月7日
    093
  • 操作系统实现-外中断

    博客网址:www.shicoder.top微信:18223081347欢迎加群聊天 :452380935 这一次我们来对中断中的外中断进行讲解,先给下中断的分类和中断号分配把。 中…

    Linux 2023年6月13日
    0126
  • docker:alpine使用logrotate切割日志

    最近在交付项目的时候使用了docker,大家都知道日志是项目定位问题的重要依据,但如果一开始项目本身没有对日志进行合理切割那就会导致长时间运行的项目日志文件大得编辑器打不开的情况。…

    Linux 2023年5月27日
    0116
  • 写shell,运行出错:syntax error near unexpected token `$’dor”

    【解决过程】 1.网上搜了下,参考:linux shell脚本报错:syntax error near unexpected token </a></p> …

    Linux 2023年5月28日
    094
  • 定时任务调度

    一、crond任务调度 概述: 使用crontab 指令进行定时任务的设置,任务调度是指系统在某个时间端执行的特定任务或程序,例如:病毒扫描,数据库备份等 基本语法: cronta…

    Linux 2023年6月6日
    0132
  • ajax跨域问题

    public class CrosFilter implements Filter { @Override public void destroy() { // TODO Auto…

    Linux 2023年6月7日
    0104
  • 数据结构——光纤网络设计

    设计进度安排 1、分析居民区光纤网络的数据属性,并依据光纤铺设的功能要求,确定算法设计方案; 2、完成网络光纤铺设的数据结构设计工作,包括图文件的结构与存储结构、最小生成树的存储结…

    Linux 2023年6月6日
    089
  • QT程序自启动

    故事背景:最近涉及到客户端更新自启动的一个问题,客户端检测到自己要更新,弹出一个更新界面,然后退出旧版本,启动新版本 技术调研:QProcess 直接上代码吧 这个代码的效果就是退…

    Linux 2023年6月13日
    0100
  • Harbor部署

    harbor 无论是使用Docker-distribution去自建仓库,还是通过官方镜像跑容器的方式去自建仓库,通过前面的演示我们可以发现其是非常的简陋的,还不如直接使用官方的D…

    Linux 2023年6月7日
    0108
  • 解决dpkg -i后自动安装依赖的问题

    自ubuntu14.04后,运行 若有未安装的依赖会先标记,再运行 自动将标记的依赖安装,再安装包即可 参考引用: https://qastack.cn/ubuntu/40011/…

    Linux 2023年6月13日
    094
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球