首页 > 其他分享 >OpenSSH9.3p1升级实践

OpenSSH9.3p1升级实践

时间:2023-05-06 16:44:27浏览次数:39  
标签:p1 openssh devel 升级 etc ssh rpm OpenSSH9.3

安装Telnet服务

为了避免升级OpenSSH导致服务器不可连接。需要先下载安装Telnet组件。升级期间使用Telnet作为升级期间的服务器连接方式。

  1. 先查询telnet是否安装
    rpm -qa telnet
  2. 如果没有安装则执行以下语句安装
    yum -y install telnet
  3. 查询telnet-server是否安装
    rpm -qa telnet-server
  4. 如果没有安装则执行以下语句安装
    yum -y install telnet-server
  5. 防火墙状态放行telent
    firewall-cmd --permanent --add-port=23/tcp --zone=public
  6. 防火墙重新载入
    firewall-cmd --reload

*注意:

  • 若防火墙是已经禁用。请略过防火墙相关命令
  • 若防火墙是暂时停止。建议先启动防火墙,添加访问策略!否则重装过程需要服务器重启,重启后可能因为防火墙原因无法通过telnet访问服务器。如果OpenSSH又安装失败,将导致服务器不可连接。附:防火墙启动命令 systemctl start firewalld

创建使用Telnet服务的账户

因为默认情况root 不能直接登录telnet
创建一个新用户用于登录elnet服务,这个账号升级完成后需要进行删除。

  1. 创建账号
    sudo useradd tempuser
  2. 设置密码
    sudo passwd tempuser
    输入一个密码,例如:Mycar=998
    后续访问的时候,通过XShell工具连接
    先用tempuser登录后,再使用
    su root
    切换到root用户。

升级OpenSSH

以下命令是使用Telnet连接后,切换到root账户进行操作。

  1. 安装相关命令依赖
    yum install -y rpm-build gcc gcc-c++ glibc glibc-devel openssl-devel openssl pcre-devel zlib zlib-devel make wget krb5-devel pam-devel libX11-devel xmkmf libXt-devel initscripts libXt-devel imake gtk2-devel lrzsz
  2. 备份原SSH配置
    cp -rp /etc/ssh /etc/ssh.bak
  3. 停止SSH服务
    systemctl stop sshd
  4. 查看安装的ssh
    rpm -qa | grep openssh
  5. 卸载rpm安装的ssh
    yum remove openssh*
  6. 创建制作rpm相关目录
    mkdir -pv /root/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
  7. 下载openssh和x11-ssh-askpass安装包
    cd /root/rpmbuild/SOURCES/
    wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz
    tar -xf openssh-9.3p1.tar.gz
    wget https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz
  8. 编辑编译配置文件
    cp openssh-9.3p1/contrib/redhat/openssh.spec /root/rpmbuild/SPECS/
    cd /root/rpmbuild/SPECS/
    不生产ask包
    sed -i -e "s/%global no_gnome_askpass 0/%global no_gnome_askpass 1/g" openssh.spec
    sed -i -e "s/%global no_x11_askpass 0/%global no_x11_askpass 1/g" openssh.spec
    修改openssl-devel的报错
    sed -i '/openssl-devel < 1.1/s/^/#/' openssh.spec
    修改PreReq的报错
    sed -i '/PreReq:/s/^/#/' openssh.spec
  9. 编译文件
    rpmbuild -ba openssh.spec
    运行后,/root/rpmbuild/RPMS/x86_64/目录应该有openssh-9.3p1-1.el7.x86_64.rpm、openssh-debuginfo-9.3p1-1.el7.x86_64.rpm、openssh-clients-9.3p1-1.el7.x86_64.rpm、openssh-server-9.3p1-1.el7.x86_64.rpm四个文件。
  10. 升级OpenSSH
    cd /root/rpmbuild/RPMS/x86_64/
    yum localinstall openssh-9.3p1-1.el7.x86_64.rpm openssh-clients-9.3p1-1.el7.x86_64.rpm openssh-server-9.3p1-1.el7.x86_64.rpm -y
  11. 验证OpenSSH是否升级成功
    修改文件权限
    chmod 600 /etc/ssh/ssh_host_rsa_key
    chmod 600 /etc/ssh/ssh_host_ecdsa_key
    chmod 600 /etc/ssh/ssh_host_ed25519_key
    检查是否有配置错误
    sshd -t
    如果/etc/pam.d/sshd配置丢失,从其他机器拷贝一份配置过来
    注释掉/etc/pam.d/password-auth /etc/pam.d/system-auth中uid >= 1000的行,否则root不能登陆
    sed -i '/uid < 1000/s/^/#/' /etc/pam.d/password-auth
    sed -i '/uid < 1000/s/^/#/' /etc/pam.d/system-auth
    修改/etc/ssh/sshd_config
    sed -i '/^#PermitRootLogin yes/s/^#//' /etc/ssh/sshd_config
    重启sshd服务
    systemctl restart sshd
    添加到自启动
    chkconfig --add sshd

查看升级后的ssh版本

重新使用SSH连接后,查看SSH版本
ssh -V
看到对应的版本为正常
如果有条件,建议重启服务器一下看SSH是否能正常登录。

关闭Telnet服务

  1. 停止Telnet 服务
    systemctl stop telnet.socket
  2. 禁用Telnet服务开机启动
    systemctl disable telnet.socket

删除临时用户

  1. 使用命令删除临时用户
    userdel -rf tempuser

可能遇到的其他问题

  1. 编译安装过程提示:Protected multilib versions: zlib-1.2.7-20.el7_9.x86_64 != zlib-1.2.7-19.el7_9.i686
    执行如下命令:
    yum install -y zlib zlib-devel --setopt=protected_multilib=false

  2. 编译安装过程提示:configure: error: PAM headers not found
    执行如下命令:
    yum -y install pam-devel

原文链接:https://www.cnblogs.com/cynriczgc/p/17255368.html

标签:p1,openssh,devel,升级,etc,ssh,rpm,OpenSSH9.3
From: https://www.cnblogs.com/kewenpu/p/17377647.html

相关文章

  • [Luogu-P1007]题解(C++)
    PartIPreface原题目(Luogu)PartIISketch给定一个正整数\(L\),表示独木桥长度。给定一个正整数\(N\),表示桥上士兵的数量。给定\(N\)个整数,分别表示每个士兵的坐标。规定走到\(0\)坐标或\(L+1\)的位置为下桥,两个士兵相遇时不能走过去,他们会各自回头走。求出所有士......
  • 虹科干货 | 零售业数智升级不掉队,get数据,get未来!
    电商崛起,传统零售行业危机四伏,全渠道盈利与可持续化成为难点,库存管理这块难啃的“硬骨头”也同样让零售商倍感压力......背腹受敌的零售商,如何才能在数字化转型道路上避免利润缩水,与供应商协作共赢,摆脱困扰,实现逆袭? 一.虹科Domo打造极致数字体验!电商的迅猛发展对传统零售行......
  • 袋鼠云“飞跃计划2.0”重磅发布:全面升级伙伴权益,共话数字生态
    4月20日,袋鼠云成功举行了以“数实融合,韧性生长”为主题的2023春季生长大会。会上重磅发布了袋鼠云生态伙伴计划——“飞跃计划2.0”,从商机、产品、联合方案及数据业务服务层面,与合作伙伴强强联手,共同打造数字化生态,同时在联合营销、渠道政策、赋能培训、产品开放、技术服务、交付......
  • Linux Centos7内核升级
    LinuxCentos7内核升级现在主流的centos应该都是centos7了,从centos7.2开始,内核版本为3.10,越往后内核版本越高。高版本的内核修复了许多的低版本内核的bug,因此,系统是需要提高内核版本的,从而提高安全性,稳定性,并增加更多的功能。Linux是支持多版本内核共存的,无非是系统启动的时候应......
  • abp(net core)+easyui+efcore实现仓储管理系统——供应商管理升级之上(六十三)
    abp(netcore)+easyui+efcore实现仓储管理系统目录abp(netcore)+easyui+efcore实现仓储管理系统——ABP总体介绍(一)abp(netcore)+easyui+efcore实现仓储管理系统——解决方案介绍(二)abp(netcore)+easyui+efcore实现仓储管理系统——领域层创建实体(三) abp(netcore)+eas......
  • rpm升级mysql小版本
    记录一下升级mysql小版本遇到坑的过程,由于数据量比较多,因此备份时最大的几个表没有备份(备份了数据文件.idb文件),但是有一个表没有备份到,导致后面浪费很久的时间恢复数据正确的升级命令如下:rpm-Uvhmysql-community-common-5.7.41-1.el7.x86_64.rpm rpm-Uvhmysql-community-li......
  • AD主辅域控切换-辅域控制器升级为主域控制器-详细操作
    前述本文主要是来源于参考,过程中遇到一些问题,故对一些容易出错的地方进行了注释和讲解环境介绍ActiveDirectory域控制器已经搭建好主域控和辅域控,主域控故障,手动升级辅域控为主。主域控:2012DC1,ip:192.168.15.1辅域控:2012DC2,ip:192.168.15.2注:最好两个域控都登录域管账户admi......
  • JDK1.8新特性(七):默认方法,真香,开动!接口?我要升级!!
    前期回顾:JDK1.8新特性(一):JDK1.8究竟有哪些新特性呢JDK1.8新特性(二):为什么要关注JDK1.8JDK1.8新特性(三):Lambda表达式,让你爱不释手JDK1.8新特性(四):函数式接口JDK1.8新特性(五):Stream,集合操作利器,让你好用到飞起来JDK1.8新特性(六):Stream的终极操作,轻松解决集合分组、汇总等复杂......
  • 是时候,升级你的 Windows 了「GitHub 热点速览」
    不知道多少小伙伴用着Windows操作系统,可能会有一个烦恼是有时候操作系统过慢,因为众多拖慢Windows系统的组件。Atlas作为一个修改版的Windows系统,能极大提高操作系统运行效率。说到升级,除了Atlas之外,还有主打内存安全的sudo升级版sudo-rs,以及pip等常见Python包管......
  • 记忆化搜索 P1028 数的计算
    P1028[NOIP2001普及组]数的计算-洛谷|计算机科学教育新生态(luogu.com.cn)一开始是想暴力搜索的,也就是枚举比n/2小的数,但是只过了5个点,其他点都TLE然后就开始想有没有优化方法以6为例子6/2=3,那么以6为首的长度为2的序列就有61,62,63,也就是所有小于等于3的数的个数接下......