Linux 升级 openssh 方法步骤

目录

  • 一:OpenSSH 介绍
  • 二:升级 OpenSSH
    • 1、下载源码包
    • 2、查看当前安装位置
    • 3、上传源码包
    • 4、生成Makefile文件
    • 5、编译并安装
    • 6、重启ssh服务
    • 7、检查版本信息

一:OpenSSH 介绍

OpenSSH最初是作为OpenBSD系统项目的一部分而开发的,后面因为其强大的功能和安全性,就被开源出来供更广泛的操作系统使用;

OpenSSH如果需要升级到最新版本,因为没有提供对应的仓库源,从而不能使用仓库在线安装这种方式。所以只能通过下载源码编译安装的方式来进行。

OpenSSH官网:https://www.openssh.com/

二:升级 OpenSSH

1、下载源码包

openssh 的源码包分为两种类型:

  • 源码包不携带p后缀:只能用于OpenBSD这个Linux系统,例如:openssh-9.9.tar.gz;
  • 源码包会携带p后缀:可以用于非OpenBSD的操作系统,例如:openssh-9.9p1.tar.gz;

如果我们的操作系统不是OpenBSD,我们需要下载带p后缀的源码包; 链接:https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/

在这里插入图片描述
在这里插入图片描述

2、查看当前安装位置

需要先查看当前已经安装的openssh客户端和服务端的安装位置;这样编译安装新版本openssh的时候,只需要将安装路径指定为对应的目录下即可。

这样的好处是其他的一些信息就不用再修改了,例如service文件。因为会默认将旧版本的openssh相关文件进行覆盖,从而替换为新版本openssh的相关文件;

可执行文件位置:/usr
在这里插入图片描述
配置文件位置:/etc/ssh
在这里插入图片描述

3、上传源码包

在这里插入图片描述

4、生成Makefile文件

因为我原来使用仓库安装openssh-serveropenssh-client后,可执行文件是存放在/usr下的,配置文件是存放在/etc/ssh下的,所以使用以下的参数就行了,其他的保持默认即可。

这里新版本的sshd和ssh、scp等会存放在/usr/sbin和/usr/bin目录下,和我以前ssh的安装路径是一样的,会将我原有的可执行文件进行覆盖。

默认情况下配置文件如果存在,是不会被覆盖的;还会继续使用以前的配置文件

./configure --prefix=/usr --sysconfdir=/etc/ssh

说明:

  • --prefix:指定openssh的程序存放路径,不指定默认就是 /usr/local;
  • --exec-prefix:指定可执行程序的存放位置,不指定默认就是PREFIX;
  • --sysconfdir:指定配置文件存放路径,如果该目录下有文件,不会覆盖;不指定默认在 PREFIX/etc
  • --sbindir:指定需要管理员权限才能执行的二进制文件路径,也就是sshd的位置,默认在EPREFIX/sbin
  • --bindir:指定普通用户都有权限执行的二进制文件路径,也就是ssh、scp等的位置,默认在EPREFIX/bin

5、编译并安装

make -j 4  && sudo make install

6、重启ssh服务

因为sshd这个可执行文件的位置是没有发生变化的。只是将旧的sshd替换为了新的sshd,所以service文件也不需要修改,直接重启service服务器,重新加载就可以了;

sudo systemctl restart ssh.service

7、检查版本信息

可以看到已经升级到了指定的新班本;

ssh -Vtelnet 127.0.0.1 22

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/63898.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES语句——DSL(kibana语句)

一、查询操作 查看当前索引的数据结构 _mapping Get ai-open-log*/_mapping 查询当前索引下的文档数以及分片信息 _count Get ai-open-log*/_count { "count": 12345, //当前索引下的文档总数 "_shards": { //分片信息 "total&…

docker开启远程访问

1、编辑docker.server文件 vi /usr/lib/systemd/system/docker.service 找到 [Service] 节点,修改 ExecStart 属性,增加 -H tcp://0.0.0.0:2375 ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock -H tcp://0.0.0.0:2…

ubuntu检测是否已安装nvidia驱动以及产品类型

nvidia-sminvidia-smi 是 NVIDIA 提供的一个命令行工具,用于查看和管理 NVIDIA GPU 的状态。当你运行 nvidia-smi 命令时,它会显示当前系统中所有 NVIDIA GPU 的状态信息,包括 GPU 的使用率、温度、内存使用情况等。 有8个GPU nvcc -V查看c…

python的自动化seleium安装配置(包含谷歌的chromedriver)

目录 前言介绍 一、下载谷歌浏览器chromedriver (一)查看谷歌浏览器版本 (二)去官网下载谷歌驱动(chromdriver) (三)谷歌浏览器安装位置解压 (四)配置环境变量 二、pychram里下载安装selenium 三、测试selenium是否成功 前言介绍 Selenium是一个开源的自动化测试工具&…

基础学习:(5)不同卷积:transposed convolution,deconvolution,dilated convolution

基础学习:(5)不同卷积 文章目录 基础学习:(5)不同卷积前言1 deconvlution transposed convolution2 对比2.1 Convolution animations2.2 Transposed convolution animations2.3 Dilated convolution 前言 …

轻量级日志管理平台:Grafana Loki搭建及应用(详细篇)

前言 Grafana Loki是Grafana Lab团队提供的一个水平可扩展、高可用性、多租户的日志聚合系统,与其他日志系统不同的是,Loki最初设计的理念是为了为日志建立标签索引,而非将原日志内容进行索引。 现在目前成熟的方案基本上都是:L…

【java】在 Java 中使用 Jackson 或 Gson 库来实现对象和 JSON 之间的转换

1. 使用 Jackson 库 a. 将 Java 对象转为 JSON 字符串 import com.fasterxml.jackson.databind.ObjectMapper;public class Main {public static void main(String[] args) throws Exception {Person person new Person("John", 30);// 创建 ObjectMapper 对象Obj…

[漏洞挖掘与防护] 05.CVE-2018-12613:phpMyAdmin 4.8.1后台文件包含缺陷复现及防御措施

这是作者新开的一个专栏——“漏洞挖掘与防护”,前期会复现各种经典和最新漏洞,并总结防护技巧;后期尝试从零学习漏洞挖掘技术,包括Web漏洞和二进制及IOT相关漏洞,以及Fuzzing技术。新的征程,新的开启,漫漫长征路,偏向虎山行。享受过程,感谢您的陪伴,一起加油~ 欢迎关…

el-table行合并及合并后序号处理

效果图 <el-tableclass"ncky-detail-table"v-loading"tableLoading"border:data"tableDataVo":span-method"objectSpanMethod"row-key"uniqueFlag":row-class-name"tablerowclassname"><el-table-column…

vue-echarts高度缩小时autoresize失效

背景 项目中采用动态给x-vue-echarts style赋值width&#xff0c;height的方式实现echarts图表尺寸的改变 <v-chart...autoresize></v-chart>给v-chart添加autoresize后&#xff0c;在图表宽度变化&#xff0c;高度增加时无异常&#xff0c;高度减小时图表并未缩…

Ubuntu 挂载目录

1. 临时挂载&#xff08;重启后失效&#xff09; 创建挂载点&#xff1a; $ sudo mkdir -p /work临时挂载磁盘到 work 目录&#xff1a; $ sudo mount /dev/nvme0n1p1 /work验证挂载是否成功&#xff1a; $ df -h /work此方法挂载在系统重启后会失效&#xff0c;需手动重新挂载…

厦门凯酷全科技有限公司正规吗靠谱吗?

随着短视频和直播电商的迅猛发展&#xff0c;越来越多的企业开始将目光投向抖音这一平台。作为国内领先的短视频社交平台&#xff0c;抖音凭借其庞大的用户基础和强大的算法推荐系统&#xff0c;成为众多品牌拓展市场、提升销售的重要渠道。厦门凯酷全科技有限公司&#xff08;…

【笔记】C语言转C++

网课链接&#xff1a;【C语言 转 C 简单教程】 https://www.bilibili.com/video/BV1UE411j7Ti/?p27&share_sourcecopy_web&vd_source4abe1433c2a7ef632aeed6a3d5c0b22a 网课老师B站id:别喷我id 视频总时长&#xff1a;01:55:27 以下笔记是我通过此网课整理 建议先…

WireShark 下载、安装和使用

1、下载 官网下载太慢&#xff0c;本人另外提供下载地址【下载WireShark】 2、安装 全部默认下一步即可&#xff0c;但如下图所示的这一步值得拿出来说一下。这一步是要你安装Npcap&#xff0c;但是你的电脑如果已经安装了WinPcap&#xff0c;那么可以选择不再安装Npcap。Npca…

STM32模拟I2C通讯的驱动程序

目录 STM32模拟I2C通讯的驱动程序 开发环境 引脚连接 驱动程序 STM32模拟I2C通讯的驱动程序 开发环境 立创天空星开发板、主控芯片为STM32F407VxT6 引脚连接 使用stm32的PB9引脚模拟I2C时钟线SCL、PB8引脚模拟I2C数据线SDA 驱动程序 i2c.h文件如下&#xff1a;#ifndef…

Qt自定义类型在信号槽中的使用

引言 示例自定义数据类型信号槽效果检查代码注册自定义类型信号槽使用QVariant传递参数总结附加绑定信号槽,传递的参数如果是自定义类型的变量,槽函数不会响应。为什么呢?是因为自定义类型没有被写入元对象系统,对于Qt来说,不认识这个数据类型,Qt是以事件来驱动的,信号槽…

电子应用设计方案-50:智能牙刷系统方案设计

智能牙刷系统方案设计 一、引言 随着人们对口腔健康的重视程度不断提高&#xff0c;智能牙刷作为一种创新的口腔护理工具&#xff0c;能够更有效地帮助用户改善刷牙习惯和清洁效果。本方案旨在设计一款功能丰富、智能化程度高的智能牙刷系统。 二、系统概述 1. 系统目标 - 准…

2024年最新 Docker 安装 Nginx 容器 (完整详细版) 2025年最新

Docker 安装 Nginx 容器 (完整详细版) 本文详细介绍了Docker的安装步骤&#xff0c;包括如何从官方镜像仓库下载Nginx镜像&#xff0c;如何检查已下载的镜像。接着&#xff0c;讲解了创建Nginx配置文件的必要性&#xff0c;并提供了创建挂载目录的命令。然后&#xff0c;展示了…

【代码随想录day58】【C++复健】 117. 软件构建(拓扑排序);47. 参加科学大会(dijkstra(朴素版)精讲)

117. 软件构建&#xff08;拓扑排序&#xff09; 继续边看解析边做题&#xff0c;思考时的问题做个如下的总结&#xff1a; 1. 存边用什么数据结构&#xff1f; 在题目中&#xff0c;我们需要存储节点之间的依赖关系&#xff08;边信息&#xff09;。选择适合的数据结构非常重…

第九篇:k8s 通过helm发布应用

什么是helm&#xff1f; Helm 是 Kubernetes 的包管理器。Helm 是查找、分享和使用软件构建 Kubernetes 的最优方式。 在红帽系的Linux中我们使用yum来管理RPM包&#xff0c;类似的&#xff0c;在K8s中我们可以使用helm来管理资源对象&#xff08;Deployment、Service、Ingress…