首页 > 系统相关 >CentOS7 通过编译RPM包升级OpenSSH-8.8

CentOS7 通过编译RPM包升级OpenSSH-8.8

时间:2022-12-07 15:35:18浏览次数:95  
标签:sshd rpmbuild OpenSSH CentOS7 etc ssh openssh 8.8 pam

编译环境

系统版本: CentOS 7
软件版本:

  • openssh-8.8p1.tar.gz
  • x11-ssh-askpass-1.2.4.1.tar.gz

编译 OpenSSH

  1. 依赖包
yum install rpm-build zlib-devel openssl-devel gcc krb5-devel pam-devel libX11-devel libXt-devel gtk2-devel imake -y
  1. 创建编译目录
mkdir -p /root/rpmbuild/{SOURCES,SPECS}
  1. 下载 openssh-8.8p1编译包和 x11-ssh-askpass 依赖包并解压修改配置

https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.8p1.tar.gz

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

安装包上传至/root/rpmbuild/SOURCES目录下

cd /root/rpmbuild/SOURCES
tar -zvxf openssh-8.8p1.tar.gz
cp openssh-8.8p1/contrib/redhat/openssh.spec  /root/rpmbuild/SPECS/

sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec
sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec
vim /root/rpmbuild/SPECS/openssh.spec
# 注释掉 BuildRequires: openssl-devel < 1.1 这一行
  1. 开始编译
rpmbuild -ba /root/rpmbuild/SPECS/openssh.spec

编译成功后 RPM 软件包存放在 /root/rpmbuild/RPMS/x86_64/ 目录下

image-20221130170410196

cd /root/rpmbuild/RPMS/x86_64/ && ll

image-20221130170206509

编译 OpenSSL

升级 OpenSSH

前提条件

必须使用多台物理机在不用网络环境下(有线连接和手机热点连接)打开多个SSH终端,避免因为网络中断安装失败,导致 SSH 连接不上主机。

安装过程中不能断开当前 SSH 终端连接,必须在 OpenSSH 服务启动后并且测试新的 SSH 终端可以连接的情况下断开。否则主机将无法连接进入终端。

安装 OpenSSH

  1. 备份 PAM
cp /etc/pam.d/sshd /etc/pam.d/sshd.bak

以下为 /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
  1. 安装 OpenSSH RPM 软件包 (会自动处理依赖关系)
cd /root/rpmbuild/RPMS/x86_64/
yum install openssh-8.8p1-1.el7.x86_64.rpm  openssh-clients-8.8p1-1.el7.x86_64.rpm openssh-server-8.8p1-1.el7.x86_64.rpm
  1. 允许 Root 用户登录
    注意检查 /etc/ssh/sshd_config 中是否启用密码登录,即PasswordAuthentication yes
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
  1. 给予权限
cd /etc/sshd
chmod 600 ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key
  1. 恢复 PAM
cp /etc/pam.d/sshd.bak /etc/pam.d/sshd
  1. 重启 OpenSSH 并检查启动状态
ssh -V
systemctl daemon-reload
systemctl restart sshd
systemctl status sshd
systemctl enable sshd              

image-20221130171218520

至此,升级完成,先别关闭当前SSH终端,直接新开一个终端,连接到服务器测试。

降级 OpenSSH

正常情况下,降级是不会覆盖 /etc/pam.d/sshdvi /etc/ssh/sshd_config , 但保险起见还是对文件进行备份检查。

  1. 备份 PAM
cp /etc/pam.d/sshd /etc/pam.d/sshd.bak2
  1. 降级
yum downgrade openssh openssh-clients openssh-server
  1. 检查配置文件
vi /etc/ssh/sshd_config

PermitRootLogin yes
PasswordAuthentication yes
  1. 检查 PAM 如果被修改则恢复
cat /etc/pam.d/sshd

image-20221130171319866

  1. 重启服务
ssh -V
systemctl daemon-reload
systemctl restart sshd
systemctl status sshd
systemctl enable sshd

至此,降级完成,先别关闭当前SSH终端,直接新开一个终端,连接到服务器测试。

标签:sshd,rpmbuild,OpenSSH,CentOS7,etc,ssh,openssh,8.8,pam
From: https://www.cnblogs.com/Likfees/p/16963189.html

相关文章

  • 开启运维之路之第 1 篇——安装虚拟机VMware、操作系统CentOS7、Xshell5、FTP Rush
    版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/BiandanLoveyou/article/details/81113406 软......
  • Centos7 Kafka初次安装部署
    Centos7Kafka初次安装部署环境:虚拟机,centos7系统。步骤:一、安装JDK1.8以上版本​此处略过二、zookeeper环境搭建1、下载Zookeeper并解压到制定的目录(或者提......
  • docker 容器安装 centos7 部署程序打包成镜像
    1、安装dockeryum install dockerecho"{"registry-mirrors":["https://01sy6s7g.mirror.aliyuncs.com"]}" >  /etc/docker/daemon.jsonsystemctl restart ......
  • Linux学习之VMware安装CentOS7
    CentOS版本:7.9VMware版本:16安装主要就是下一步,下一步,有几个注意事项:第一就是网卡的设置,因为CentOS7默认网卡名字不是ethX样式.然后就是安装软件的选择,学习Linux,......
  • CentOS7 安装 Docker
    1、Docker简介Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现......
  • centos7 离线(内网环境无外网) 安装docker
    1.环境1.centos7内网环境无外网连接,yum安装会失效,采用离线安装包方式安装docker 2.下载安装包1.百度网盘:链接:https://pan.baidu.com/s/1ArPt-NhjtdKTBW3I4BE-......
  • centos7安装varnish
    1、下载安装包官网地址:http://varnish-cache.org/wgethttp://varnish-cache.org/downloads/varnish-7.2.1.tgz2、在线安装依赖工具yum-yinstallgccreadline-de......
  • CentOS7.0下完美部署Solr 搜索引擎
    一、环境准备:系统环境:CentOS-7.0.1406       tomcat-7.0.29       jdk-7u9       solr-4.7.0首先将软件包上传到/tmp目录下1、 jdk安装[ro......
  • Centos7.6安装vim配置
    简介帮助对vim配置方法不熟悉的新手封装的一键式vim环境安装包.主要针对终端vim用户,适合远程ssh连接Linux服务器进行开发的场景(例如使用阿里云服务器或者腾讯云服务器......
  • Centos7.6更新git
    本文讲述如何升级centos系统的git版本。高版本git增加了一些好用的功能,比如"gitpull支持指定项目目录"等。本文以centos6/7为例讲解。升级centos6/7的git版本......