说明

本次维护的时间是 2023-2-9
最新已发布的补丁是 OpenSSH9.2P1版本
其他本本应该是类似处理.

下载介质

在 OpenSSH官网打开相关界面.
http://www.openssh.com/
打开
For Other systems
打开release界面.比如我这边使用这个mirror
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/ 最新的介质为:
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.2p1.tar.gz

前提处理

yum install openssl-devel krb5-devel pam-devel  rpm-build -y
mkdir /root/rpmbuild/{RPMS,SOURCES,SPECS}
解压缩文件并且存放于具体路径
将 openssh-9.2p1 存放于/root/rpmbuild/SOURCES
将 openssh.spec存放于 /root/rpmbuild/SPECS
注意原始文件路径为:
/openssh-9.2p1/contrib/redhat 与之前的文档一样, 需要修改: 注意需要修改一下 如下三个配置:
%global no_x11_askpass 1
%global no_gnome_askpass 1
#BuildRequires: openssl-devel < 1.1
#注意将 最后一个配置文件注释掉.

修改版本号信息

注意修改openssh的版本号文件
文件在:
/openssh-9.2p1/version.h
注意修改的信息为:
#define SSH_VERSION "OpenSSH_9.2"
修改为
#define SSH_VERSION "OpenSSH_99.99"
便于混淆版本号

安装高版本的openssl1.1.1s

下载指代的tar包
进行解压缩
然后执行 config
cd openssl-1.1.1s/
./config --prefix=/usr/local/openssl-1.1.1s
执行make
需要注意 openssl的编译时间非常长 # 我有一台服务没有做下面的操作也可以了 ,尴尬
ln -s /usr/local/openssl-1.1.1s /usr/local/openssl
mv /usr/bin/openssl /usr/bin/openssl_old ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

进行编译和打包

cd /root/rpmbuild/SOURCES/
tar -czvf openssh-9.2p1.tar.gz openssh-9.2p1/
# 注意解压缩为了修改版本信息.
# 打包rpm需要使用 原始的tar包.
cd /root/rpmbuild/SPECS
time rpmbuild -bb openssh.spec

生成与安装rpm

执行了rpmgbuild 后会在指定路径下形成如下的rpm包
cd /root/rpmbuild/RPMS/x86_64/
然后生成文件主要如下:
-rw-r--r-- 1 root root 667440 2月 9 openssh-9.2p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 640588 2月 9 openssh-clients-9.2p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 3267580 2月 9 openssh-debuginfo-9.2p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 471952 2月 9 openssh-server-9.2p1-1.el7.x86_64.rpm 然后可以在此目录下执行 yum localinstall *.rpm -y

注意升级了较高版本需要修改一下pam的级别

cat </etc/pam.d/sshd <<EOF
#%PAM-1.0
auth required pam_sepermit.so
auth include password-auth
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 optional pam_keyinit.so force revoke
session include password-auth
EOF

需要修改一下 sshd的配置文件

vim /etc/ssh/sshd_config
将如下部分修改为:
PermitRootLogin yes
也可以执行命令
注意需要使用 :wq! 保存只读文件. 方法2:
sed -i '/PermitRootLogin/d' /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config 重启服务:
systemctl restart sshd

版本验证

[root@centos7 x86_64]# ssh -V
OpenSSH_99.99p1, OpenSSL 1.0.2k-fips 26 Jan 2017
[root@centos7 x86_64]# telnet 127.0.0.1 22
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_99.99

如果不升级仅修改telnet显示ssh版本的方法

strings /usr/sbin/sshd | grep OpenSSH
获取一个版本号 比如 OpenSSH_7.4 或者是其他任意
scp /usr/sbin/sshd /usr/sbin/sshd_jnxlh -a sed -i 's/OpenSSH_7.4/OpenSSH_99.99/g' /usr/sbin/sshd
systemctl restart sshd
也可以实现. 但是实际版本号未修改.

ssh-copy-id的使用说明

这是一个脚本, 而不是二进制文件
一般存放的路径为:
openssh-9.2p1/contrib/ssh-copy-id
将这个文件复制到 /usr/bin 目录下并且设置可执行权限即可.

OpenSSH 9.2P1升级以及版本显示的处理过程的更多相关文章

  1. CentOS 5升级Python版本(2.4>2.7)

    安装SALT时,需要这样作,公司有一批REDHAT5的,弄起来... 然后却是: Missing Dependency: python(abi) = 2.6 is needed by package ...

  2. jQuery1.9+ 废弃的函数和方法 升级Jquery版本遇到的问题

    面临问题 很久没关注JQuery了,今天突然想升级一下系统中使用的jquery版本,突然发现,升级JQuery版本到1.9之后出现了很多问题,比如:$.browser is undefined.突然就 ...

  3. CENTOS 7 升级内核版本(附带升级脚本)

    写在前面的话 对于系统而言,除非是那种安全性要求非常高的公司或者经常会有第三方安全机构对其漏洞扫描的才容易涉及到系统的内核升级,比如之前呆过一个公司,因为需要做三级等保的原因,就会涉及到系统扫描,这时 ...

  4. H3C S12508单板卡 通过bootware升级software版本

    H3C S12508单板卡 通过bootware升级software版本 案例:S12508更换主控板LST1MRPNC1 ,该板卡状态为Slave状态: 设备状态:S12508共2台做了堆叠,共含4 ...

  5. CentOS7安装CDH 第十一章:离线升级CDH版本

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  6. 不升级Element-UI 版本为时间选择器增加标记功能

    Element-UI里的date-picker是个优秀的时间选择器,支持的选项很多,定制型很强.不过date-picker在2.12版本之前并不支持自定义单元格样式,也就是2.12的cellClass ...

  7. linux下面升级 Python版本并修改yum属性信息

    最近需要在linux下使用python,故需要升级一下python版本,上网查询了一下相关资料,更新了一下linux下面的python环境,记录如下: linux下面升级 Python版本并修改yum ...

  8. 非关系型数据库来了,CRL快速开发框架升级到版本4

    轮子?,我很任性,我要造不一样的轮子,同时支持关系型和非关系型的框架有没有 新版数据查询作了些调整,抽象了LabmdaQueryy和DBExtend,升级到版本4,非关系数据库MongoDB被支持了! ...

  9. ubuntu下升级R版本

    ubuntu下升级R版本   在测试<机器学习 实用案例解析>一书的邮件分类代码时,windows系统下rstudio中无法读取特殊字符,在ubuntu下可以.在ubuntu虚拟机下安装t ...

  10. Mac中使用port升级gcc版本

    Mac OS中的gcc版本可能不会满足实际使用要求,需要对其升级. 这里介绍使用port方式来升级gcc版本.Macports是Mac OS中的软件包管理工具. 首先,安装Macports 这里提供O ...

随机推荐

  1. 非暴力拆解:小熊派NB-IoT通信扩展板

    摘要:相信大家对小熊派的NB-IoT通信扩展板已经非常了解了,但你有真正的了解过其内部构造吗?今天小编不聊技术,带你做一回拆·机·客! 相信大家对小熊派的NB-IoT通信扩展板已经非常了解了,但你有真 ...

  2. JDK1.6中String类的坑,快让我裂开了…

    摘要:JVM优化的目标就是:尽可能让对象都在新生代里分配和回收,尽量别让太多对象频繁进入老年代,避免频繁对老年代进行垃圾回收,同时给系统充足的内存大小,避免新生代频繁的进行垃圾回收. 本文分享自华为云 ...

  3. 实践GoF的设计模式:单例模式

    摘要:单例模式虽然简单易用,但也是最容易被滥用的设计模式.它并不是"银弹",在实际使用时,还需根据具体的业务场景谨慎使用. 本文分享自华为云社区<[Go实现]实践GoF的23 ...

  4. 让数据大白于天下:GCC插件实现代码分析和安全审计

    摘要: 如何利用GCC的插件功能,辅助安全分析人员实现对程序的安全审计.漏洞检测.安全加固等自动化处理能力,提升分析效率和精准度. 本文分享自华为云社区<利用GCC插件实现代码分析和安全审计&g ...

  5. Java 项目工程搭建 --创建父工程

    Java 项目工程搭建 --创建父工程 Java 项目工程搭建 --创建子模块(依赖父工程) Intellij 2018 更多详细内容见尚硅谷阳哥视频,实际项目中更多的是copy,修改pom Inte ...

  6. Go--发起HTTP请求

    一.HTTP请求 根据 HTTP 标准,HTTP 请求可以使用多种请求方法.在日常开发中大多数会用到 5 种请求方法: GET.POST.PUT.PATCH 和 DELETE 方法 描述 GET 请求 ...

  7. 基于分发与计算的GRTN全球实时传输网络

    一张能同时满足「分发」与「计算」需求的网. 从直播趋势看「分发」与「计算」 阿里云直播产品架构图中,主要分为端和云两个部分:在端侧,主要包含推流端和播放端:在云侧,一是基于分布式节点构建的传输网,二是 ...

  8. Codeforces 1326A Bad Ugly Numbers (思维)

    Codeforces 1326A Bad Ugly Numbers 看完题目,第一直觉,质数肯定满足题意,再看数据范畴,\(1≤n≤10^5\), 质数线性筛仅能做到 n=7 的情况,即处理到1000 ...

  9. 图解 Promise 实现原理(一)—— 基础实现

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/UNzYgpnKzmW6bAapYxnXRQ作者:孔垂亮 很多同学在学习 Promise 时,知 ...

  10. vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)

    上传文档格式 1 <template> 2 <div> 3 <div class="upload"> 4 <div> 5 <d ...