安装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
  7. 启用Telnet服务开机启动

    systemctl enable telnet.socket
  8. 启动Telnet服务

    systemctl start telnet.socket

*注意:

  • 若防火墙是已经禁用。请略过防火墙相关命令
  • 若防火墙是暂时停止。建议先启动防火墙,添加访问策略!否则重装过程需要服务器重启,重启后可能因为防火墙原因无法通过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 -y 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. 使用命令删除临时目录

    rm ~/rpmbuild/ -rf

可能遇到的其他问题

  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

  3. 升级完成后,所有账号(含非root账号)都无法登录,提示:Access denied

    执行如下命令:

    setenforce 0

    如果这个命令可以临时解决。请修改/etc/selinux/config文件,设置SELINUX=disabled

  4. 升级完成后,root账号无法登录,提示:Access denied,但是其他一般账户可以登录

    执行如下命令:

    vim /etc/ssh/sshd_config

    确保配置值为:PermitRootLogin yes

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

附:OpenSSH 9.3p1升级到9.3p2 ,亲测可用。

https://blog.csdn.net/liu_chen_yang/article/details/133460539

OpenSSH9.3p1升级实践的更多相关文章

  1. QQ会员AMS平台PHP7升级实践

    作者:徐汉彬链接:https://zhuanlan.zhihu.com/p/21493018来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. QQ会员活动运营平台(AMS ...

  2. 日请求亿级的 QQ 会员 AMS 平台 PHP7 升级实践

    QQ会员活动运营平台(AMS),是QQ会员增值运营业务的重要载体之一,承担海量活动运营的Web系统.AMS是一个主要采用PHP语言实现的活动运营平台, CGI日请求3亿左右,高峰期达到8亿.然而,在之 ...

  3. 升级到php7相关问题,日请求过亿QQ会员活动平台PHP7升级实践

    升级到php7相关问题,日请求过亿QQ会员活动平台PHP7升级实践 日请求过亿:QQ会员活动平台PHP7升级实践http://mp.weixin.qq.com/s?__biz=MjM5MjAwODM4 ...

  4. 日请求亿级的QQ会员AMS平台PHP7升级实践

    版权声明:本文由PHP7升级项目组原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/74 来源:腾云阁 https://www ...

  5. 手机淘宝轻店业务 Serverless 研发模式升级实践

    一.前言 随着 Serverless 在业界各云平台落地,阿里内部 Serverless 研发平台.各种研发模式也在业务中逐步落地,如火如荼.在此契机下,淘系团队启动了轻店 Serverless 研发 ...

  6. Elasticsearch1.7到2.3升级实践总结

    概括 简述 升级分为Elasticsearch server升级和Elasticsearch client api升级 为什么要迁移 当前团队内多个业务方公用一套ES集群,容易被影响,重要业务应该独自 ...

  7. 读“日请求亿级的QQ会员AMS平台PHP7升级实践”博客心得笔记

    PHP7版本尚未普及,对于前辈们为了性能提升有勇气探索新技术敢于尝螃蟹的精神十分敬佩,倍受鼓舞. PHP7升级面临的风险和挑战 对于一个已经现网在线的大型公共Web服务来说,基础公共软件升级,通常是一 ...

  8. 经典文摘:饿了么的 PWA 升级实践(结合Vue.js)

    自 Vue.js 官方推特第一次公开到现在,我们就一直在进行着将饿了么移动端网站升级为 Progressive Web App 的工作.直到近日在 Google I/O 2017 上登台亮相,才终于算 ...

  9. Kubernetes 集群无损升级实践 转至元数据结尾

    一.背景 活跃的社区和广大的用户群,使 Kubernetes 仍然保持3个月一个版本的高频发布节奏.高频的版本发布带来了更多的新功能落地和 bug 及时修复,但是线上环境业务长期运行,任何变更出错都可 ...

  10. 升级到 PHP-7 遇到的坑 及 经验分享

    注意:上面这张图是QQ群网友分享的,图中提到的“被移除的函数”,call_user_func 和 call_user_func_array 在 PHP-7.0 的正式版中是可用的,也许是当时的 测试版 ...

随机推荐

  1. csv或excel文件通过plsql导入到oracle数据库中

    1.背景 实际开发中经常遇到将数据直接导入到数据库中,操作如下 2.操作 第一步: 第二步:选择要导入的csv文件 第三步:选择数据库表字段与csv的列对应,然后点击导入,完成 完美!

  2. [CEOI2018] Lottery 题解

    前言 题目链接:洛谷. 题意简述 给出序列 \(a_1 \ldots a_n\) 和常数 \(l \leq n\),定义: \[\operatorname{dis}(i, j) = \sum _ {k ...

  3. 运维 + AI,你得先搞懂这些

    很感谢夜莺提供如此优质的平台能和行业内顶尖技术大佬做面对面的交流,在这个会议中又学习到了很多有趣有深度的内容,给我在未来探索的道路上提供了一些新的指引方向.同时感谢夜莺社区的邀请,在此再做一次关于AI ...

  4. Linux下错误解决方案

    错误 "E: Unable to correct problems, you have held broken packages."这种问题包破坏问题,可能是由于镜像源与系统版本不 ...

  5. Json转实体类问题

    背景:使用一个实体类,将json及xml转成对应的实体类 Transformers.fromJson 将json映射成对应的实体类, 原本已经测试,传xml是可以的,传的有字段及list<E&g ...

  6. spark 中怎么像 pandas 里面对时间数据做 resample

    1. 笨办法 pandas Dataframe 可以很容易做时序数据的 resample,按照一定的frequency 聚合数据. 但是spark 中因为没有顺序的概念就不太好做,下面是怎么在spar ...

  7. 在 SQLAlchemy 中对数据异步处理的时候,获得关联集合的处理方式

    我们在定义SQLAlchemy对象模型的关系的时候,用到了relationship 来标识关系,其中 lazy 的参数有多种不同的加载策略,本篇随笔介绍它们之间的关系,以及在异步处理中的一些代码案例. ...

  8. 游戏AI寻路——八叉树+A*寻路

    利用八叉树的空中寻路 你有思考过在空中如何进行寻"路"吗?来想象一个的场景:飞机从空中基地出发,要避开许多空中建筑,最终到达目的地.这种情况下的寻路是没有路面的,寻路物体的移动方向 ...

  9. SpringBoot 引入第三方 jar

    SpringBoot 引入第三方 jar 项目结构 -BCJS |--lib |--hsm-talos-1.0.1.jar |--src |--pom.xml step1 : 配置第三方 jar 为依 ...

  10. 亮相CCIG2024,合合信息文档解析技术破解大模型语料“饥荒”难题

        近日,2024中国图象图形大会在古都西安盛大开幕.本届大会由中国图象图形学学会主办,空军军医大学.西安交通大学.西北工业大学承办,通过二十多场论坛.百余项成果,集中展示了生成式人工智能.大模型 ...