debian12 - openssh-9.6.P1的编译安装

文章目录

    • debian12 - openssh-9.6.P1的编译安装
    • 概述
    • 笔记
    • 备注
    • END

debian12 - openssh-9.6.P1的编译安装

概述

在debian12上, 源码编译安装了openssl3.2
导致ssh失败.

lostspeed@debian12d4x64:~$ openssl version
OpenSSL 3.2.0 23 Nov 2023 (Library: OpenSSL 3.2.0 23 Nov 2023)
lostspeed@debian12d4x64:~$ ssh -V
OpenSSL version mismatch. Built against 300000a0, you have 30200000

因为ssh用的openssl版本是3.0, 和openssl3.2有冲突.
我现在再学openssl3.2, 又不能降版本.
那现在怎么配置debian12都没用, openssl3.2 和 SSH水火不容.
只能是重新从源码编译安装openssh.

笔记

openssh的库地址 https://github.com/openssh/openssh-portable.git
迁出到本地, 然后迁出到最新的稳定版(openssh-9.6.P1)
在这里插入图片描述
用7z压缩成.tar
设置debian12虚拟机的虚拟目录, 拷贝到虚拟机中.
如果虚拟机中没有挂在的虚拟目录, 执行下面的脚本

sudo umount /mnt/hgfs
lostspeed@debian12d4x64:~$ id
uid=1000(lostspeed) gid=1000(lostspeed)=1000(lostspeed),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),100(users),106(netdev),111(bluetooth),113(lpadmin),116(scanner)

sudo /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000 -o gid=1000 -o umask=022
sudo /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o nonempty -o allow_other -o uid=1000 -o gid=1000 -o umask=022

进入home目录, 开始干活

cd /home/lostspeed
mkdir ./openssh
cd ./openssh
cp /mnt/hgfs/crypt/openssh-portable.tar .
tar -xf ./openssh-portable.tar

开始编译安装

cd ./openssh-portable/
autoreconf
./configure

# 报错, 说openssl头文件和库文件版本对不上, 根据日志config.log, 看到检查 opensslv.h 版本不对.
# 因为debian12默认的openssl版本低, 所以要找出哪个头目录是openssl旧版本的.
sudo find / -name 'opensslv.h'
找到/usr/include/openssl/是旧的openssl头文件目录.
改名
cd /usr/include/
sudo mv ./openssl ./openssl_old

再重新运行自动配置和配置
cd /home/lostspeed/openssh/openssh-portable

checking for openssl... /usr/local/ssl/bin/openssl
checking for openssl/opensslv.h... no
configure: error: *** OpenSSL headers missing - please install first or check config.log ***

最后才试错出来, 因为openssh不知道openssl安装后的目录在哪里, 所以要 ./configure --with-ssl-dir=/usr/local/ssl 指定openssl的目录才行.

如果看到有旧的openssl, 就做一个软连接, 指向自己从源码编译安装的 /usr/local/ssl/bin/openssl

如果自己编译安装后的新版openssl不在PATH中, 需要自己将路径加入PATH中
lostspeed@debian12d4x64:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/snap/bin:/usr/local/ssl/bin


如果发现有旧版的头文件目录, 做软连接, 指向自己的新版openssl
lostspeed@debian12d4x64:~$ ls -l /usr/include/openssl
lrwxrwxrwx 1 root root 22 Feb  6 17:52 /usr/include/openssl -> /usr/local/ssl/include


尝试将openssl头文件目录拷贝到openssh目录
pwd
/home/lostspeed/openssh/openssh-portable
cp -r /usr/local/ssl/include/openssl .

autoreconf
./configure --with-ssl-dir=/usr/local/ssl

这回成功了!!!

OpenSSH has been configured with the following options:
                     User binaries: /usr/local/bin
                   System binaries: /usr/local/sbin
               Configuration files: /usr/local/etc
                   Askpass program: /usr/local/libexec/ssh-askpass
                      Manual pages: /usr/local/share/man/manX
                          PID file: /var/run
  Privilege separation chroot path: /var/empty
            sshd default user PATH: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
                    Manpage format: doc
                       PAM support: no
                   OSF SIA support: no
                 KerberosV support: no
                   SELinux support: no
                   libedit support: no
                   libldns support: no
  Solaris process contract support: no
           Solaris project support: no
         Solaris privilege support: no
       IP address in $DISPLAY hack: no
           Translate v4 in v6 hack: yes
                  BSD Auth support: no
              Random number source: OpenSSL internal ONLY
             Privsep sandbox style: seccomp_filter
                   PKCS#11 support: yes
                  U2F/FIDO support: yes

              Host: x86_64-pc-linux-gnu
          Compiler: cc
    Compiler flags: -g -O2 -pipe -Wno-error=format-truncation -Wall -Wextra -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-parameter -Wno-unused-result -Wimplicit-fallthrough -Wmisleading-indentation -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv -fzero-call-used-regs=used -ftrivial-auto-var-init=zero -fno-builtin-memset -fstack-protector-strong -fPIE  
Preprocessor flags: -I/usr/local/ssl/include  -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_GNU_SOURCE -DOPENSSL_API_COMPAT=0x10100000L
      Linker flags: -L/usr/local/ssl/lib64  -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -fstack-protector-strong -pie 
         Libraries: 
     +for channels: -lcrypto  -lz
         +for sshd: -lcrypt 


openssl 测试, 安装

make
make tests
sudo make install

# 安装位置
/usr/bin/install -c -m 0755 -s ssh /usr/local/bin/ssh

ssh -v 正常运行

lostspeed@debian12d4x64:~$ ssh -V
OpenSSH_9.6p1, OpenSSL 3.2.0 23 Nov 2023

可以看到, 自己编译安装的openssh用的openssl是最新版的openssl3.2

测试
sshd -t

lostspeed@debian12d4x64:~$ 
OpenSSL version mismatch. Built against 300000a0, you have 30200000
lostspeed@debian12d4x64:~$ /usr/local/sbin/sshd
sshd: no hostkeys available -- exiting.
lostspeed@debian12d4x64:~$ /usr/local/sbin/sshd --help
unknown option -- -
OpenSSH_9.6p1, OpenSSL 3.2.0 23 Nov 2023
usage: sshd [-46DdeGiqTtV] [-C connection_spec] [-c host_cert_file]
            [-E log_file] [-f config_file] [-g login_grace_time]
            [-h host_key_file] [-o option] [-p port] [-u len]
lostspeed@debian12d4x64:~$ 

可以看到, 可能是旧版的sshd引起ssh启动失败.
将旧版sshd备份掉, 做一个新版的sshd软链接代替.

sudo mv /usr/sbin/sshd /usr/sbin/sshd.old.bk
sudo ln -s /usr/local/sbin/sshd /usr/sbin/sshd

sshd好使了
lostspeed@debian12d4x64:~$ ssh -V
OpenSSH_9.6p1, OpenSSL 3.2.0 23 Nov 2023
lostspeed@debian12d4x64:~$ sshd -V
OpenSSH_9.6p1, OpenSSL 3.2.0 23 Nov 2023


sudo systemctl enable ssh
sudo systemctl start ssh

lostspeed@debian12d4x64:~$ sudo systemctl start ssh
Job for ssh.service failed because a timeout was exceeded.
See "systemctl status ssh.service" and "journalctl -xeu ssh.service" for details.
修改配置试试.

// 手工启动服务到后台
systemctl restart sshd &

sudo systemctl status ssh
好像可以了

重启后, 查看状态, ssh服务正常

lostspeed@debian12d4x64:~$ sudo systemctl status ssh
[sudo] lostspeed 的密码:
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; preset: enabled)
     Active: activating (start) since Tue 2024-02-06 19:40:31 CST; 40s ago
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 726 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 756 (sshd)
      Tasks: 1 (limit: 2244)
     Memory: 2.6M
        CPU: 18ms
     CGroup: /system.slice/ssh.service
             └─756 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

2月 06 19:40:31 debian12d4x64 systemd[1]: Starting ssh.service - OpenBSD Secure Shell server...
2月 06 19:40:31 debian12d4x64 sshd[756]: Server listening on 0.0.0.0 port 22.
2月 06 19:40:31 debian12d4x64 sshd[756]: Server listening on :: port 22.

在win10中用WindTerm链接debian12正常.

备注

这次实验有点乱, 不过能用了, 先这样.
已经做了vmware16的还原点.
用SSH客户端去连debian12, 感觉舒服多了.

END

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

金融信贷风控系统设计

前言 近一年多以来在金融行业负责风控系统,根据自己工作中的经验,写下这篇文章。既是对自己在风控领域工作的总结,也是给刚入行和准备入行的朋友打个样,希望能有所帮助。 为什么要有风控系统 记得 2016 年信贷行业的发展形势还…

计算机毕业设计 基于SpringBoot的城市垃圾分类管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

深入解析 Spring 事务机制

当构建复杂的企业级应用程序时,数据一致性和可靠性是至关重要的。Spring 框架提供了强大而灵活的事务管理机制,成为开发者处理事务的首选工具。本文将深入探讨 Spring 事务的使用和原理,为大家提供全面的了解和实际应用的指导。 本文概览 首…

​​​​​​​CleanMyMac X有什么优势?到底好不好用?

当你的Mac开始变得缓慢或者存储空间告急时,这通常是一个清理磁盘空间的信号。无论是工作文件、个人照片、还是各种应用程序,随着时间的推移,它们都可能在你的硬盘上积累了大量数据。有效地管理这些文件不仅可以提高你的工作效率,还…

DevExpress WinForms中文教程 - 如何创建可访问的WinForms应用?(二)

为用户创建易访问的Windows Forms应用程序不仅是最佳实践的体现,还是对包容性和以用户为中心的设计承诺。在应用程序开发生命周期的早期考虑与可访问性相关的需求可以节省长期运行的时间(因为它将决定设计决策和代码实现)。 一个可访问的WinForms应用程序提供了各种…

Android 11 访问 Android/data/或者getExternalCacheDir() 非root方式

前言: 需求要求安装三方应用ExternalCacheDir()下载下来的apk文件。 getExternalCacheDir() : /storage/emulated/0/Android/data/com../cache/ 获取访问权限 如果手机安卓版本为Android10的时候,可以在AndroidManifest.xml中添加下列代码 android:requestLegacyExt…

飞天使-k8s知识点16-kubernetes实操1-pod

文章目录 深入Pod 创建Pod:配置文件详解写个pod的yaml 文件深入Pod 探针:探针技术详解 深入Pod 创建Pod:配置文件详解 资源清单参考链接:https://juejin.cn/post/6844904078909128712写个pod的yaml 文件 apiVersion: v1 kind: P…

【初识爬虫+requests模块】

爬虫又称网络蜘蛛、网络机器人。本质就是程序模拟人使用浏览器访问网站,并将需要的数据抓取下来。爬虫不仅能够使用在搜索引擎领域,在数据分析、商业领域都得到了大规模的应用。 URL 每一个URL指向一个资源,可以是一个html页面,一…

IP地址如何保护网络安全

面对网络攻击时,仅依靠常态化的网络安全防御系统已捉襟见肘,如联合使用IP地址数据可以形成多元化的安全解决方案,全面监控网络活动,发现潜在威胁,制定有针对性的应对措施。 网络攻击追踪 当网站或应用遭受DDoS等网络攻…

目标识别,跟踪模块

Tofu5m 是高性价比目标识别跟踪模块,支持可见光视频或红外网络视频的输入,支持视频下的多类型物体检测、识别、跟踪等功能。 产品支持视频编码、设备管理、目标检测、深度学习识别、跟踪等功能,提供多机版与触控版管理软件,为二次…

游戏服务器多少钱一台?腾讯云32元,阿里云26元

游戏服务器租用多少钱一年?1个月游戏服务器费用多少?阿里云游戏服务器26元1个月、腾讯云游戏服务器32元,游戏服务器配置从4核16G、4核32G、8核32G、16核64G等配置可选,可以选择轻量应用服务器和云服务器,阿腾云atengyu…

开启一个服务,将服务器指定的文件读取,传播到网上其他终端

from flask import Flask, render_template_string app Flask(__name__)app.route(/get-data) def get_data():# 读取data.txt文件的内容with open(r./2024/2/4/data.txt, r) as file:data file.read()print(data)# 返回数据的HTML表示return render_template_string(<div…

程序员的数字化工作台:理解不关机背后的逻辑与需求

目录 程序员为什么不喜欢关电脑&#xff1f; 电脑对程序员的重要性&#xff1a; 工作流程与需求&#xff1a; 数据安全与备份&#xff1a; 即时性与响应&#xff1a; 个人习惯等方面&#xff1a; 程序员为什么不喜欢关电脑&#xff1f; 电脑对程序员的重要性&#xff1a;…

【JSON2WEB】04 amis低代码前端框架介绍

1 什么是 amis amis 是一个低代码前端框架&#xff0c;它使用 JSON 配置来生成页面&#xff0c;可以减少页面开发工作量&#xff0c;极大提升效率。 看到amis一句话的介绍&#xff0c;感觉就是JSON2WEB要找的前端框架。 amis是百度开源的框架&#xff0c;毕竟是大厂&#xff0c…

JavaScript入门学习

JavaScript 一.什么是JavaScript与作用 JavaScript&#xff08;简称“JS”&#xff09; 是一种具有函数优先的轻量级&#xff0c;解释型或即时编译型的编程语言 嵌入HTML中&#xff0c;与Css一样。对浏览器事件作出响应操作HTML元素及节点。可以动态操作CSS样式。在数据被提交…

操作系统基础:磁盘组织与管理【上】

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;OS从基础到进阶 &#x1f6e0;️1 磁盘的结构&#x1f4e1;1.1 总览&#x1f4e1;1.2 磁盘、磁道、扇区⚗️1.2.1 什么是磁盘⚗️1.2.2 什么是磁道⚗️1.2.3 什么是扇区 &#x1f4e1;1.3 …

使用No-SQL数据库支持连接查询用例的讨论

简介 在本文中&#xff0c;我们将简单介绍什么是No-SQL数据库。然后我们会讨论一种使用关系数据库比较容易实现的查询&#xff0c;即连接查询&#xff0c;怎么样使用No-SQL来实现。 什么是No-SQL数据库 与No-SQL数据库相对应的是传统的关系数据库&#xff08;RDBMS&#xff…

【教程】Linux使用git自动备份和使用支持文件恢复的rm命令

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 背景介绍 首先非常不幸地告诉你&#xff1a;Linux 系统的标准 rm 命令不支持文件恢复功能。一旦使用 rm 删除了文件或目录&#xff0c;它们就会从文件系统中永久删除&#xff0c;除非你使用专门的文件恢复工具尝试…

如何在 Ubuntu 上安装 ONLYOFFICE 文档 8.0

通过使用社区版&#xff0c;您有能力在您自己的服务器上部署 ONLYOFFICE 文档&#xff0c;从而使在线编辑器与 ​​ONLYOFFICE 协作平台​​​或​​其他热门系统​​进行无缝集成。 ONLYOFFICE 文档是什么 ONLYOFFICE 文档是一款全面的在线办公工具&#xff0c;提供了文本文档…

ELAdmin 前端启动

开发工具 官方指导的是使用WebStorm&#xff0c;但是本人后端开发一枚&#xff0c;最终还是继续使用了 idea&#xff0c;主打一个能用就行。 idea正式版激活方式&#xff1a; 访问这个查找可用链接&#xff1a;https://3.jetbra.in/进入任意一个能用的里面&#xff0c;顶部提…