OpenSSH移植到Linux开发板

news2025/8/7 10:07:51

OpenSSH移植到Linux开发板

文章目录

    • OpenSSH移植到Linux开发板
  • 前言
  • 一、移植zlib库
  • 二、 移植openssl库
  • 三、 移植openssh库
    • 1. 在开发板中创建目录
    • 2. 将文件拷贝到对应目录下
    • 3. 创建对应软连接
  • 4. 开发板上生成密钥文件
  • 5. 开启SSH


前言

在Linux开发中,有时候需要远程登录到开发板上对系统进行一些操作,这个时候就需要用到SSH服务。SSH(Secure Shell 安全外壳协议)是较可靠,专为远程登录会话和其他网络服务提供安全性的协议,OpenSSH是SSH协议的一个免费开源版本。

这里一共需要移植三个软件包:zlib,openssl和openssh,可依次到官网下载对应的源码:
zlib官网:http://www.zlib.net/
openssl 官网:https://www.openssl.org/source/
opnssh 官网: http://www.openssh.com


提示:以下是本篇文章正文内容,下面案例可供参考

一、移植zlib库

在官网我下载的是1.2.11版本的,将下载的zlib-1.2.11.tar.gz 拷贝到本地Ubuntu中进行解压

tar -xvzf zlib-1.2.11.tar.gz

解压完成后,创建一个zlib文件夹,然后进行解压后的zlib-1.2.11 源码文件中,配置并编译

#1. 配置命令
CC=arm-linux-gnueabihf-gcc
LD=arm-linux-gnueabihf-ld
AD=arm-linux-gnueabihf-as
./configure --prefix=/home/hx/linux/tools/zlib 
#注意 以上命令以空格为界,这里为了美观 用了换行
#CC LD AD是根据自己所使用的交叉编译器配置
#--prefix 是之前创建zlib目录所在的路径

#2. 配置完成 开始编译
make
#3. 开始安装
make install

编译完成后,将zlib目录下的lib中库文件移植到开发板的/lib目录下
在这里插入图片描述

二、 移植openssl库

在官网下载的是1.1版本的,将下载的openssl-1.1.ld.tar.gz拷贝到本地Ubuntu中,并解压

tar -xvzf openssl-1.1.ld.tar.gz

解压完成后,创建一个openssl文件夹,然后进行解压后的openssl-1.1.ld 源码文件中,配置并编译

#1. 配置命令
./Configure linux-armv4 shared no-asm 
--prefix=/home/hx/linux/tools/openssl 
CROSS_COMPILE=arm-linux-gnueabihf-
#注意 以上命令以空格为界,这里为了美观 用了换行
#linux-armv4 是32位ARM凭条 没有armv7的选项
#--prefix 是之前创建openssl目录所在的路径

#2. 配置完成 开始编译
make
#3. 开始安装
make install

编译完成后会在openssl/lib下生成libcrypto和libssl库,将这些库拷贝到开发板的/usr/lib目录下
在这里插入图片描述

三、 移植openssh库

在官网下载到openssh-8.2p1.tar.gz,拷贝到本地Ubuntu中并解压

tar -xvzf openssh-8.2p1.tar.gz

解压后进入到openssh-8.2p1目录,开始配置和编译

#1. 配置
./configure --host=arm-linux-gnueabihf --with-libs 
--with-zlib=/home/hx/linux/tools/zlib --with-ssl-dir=/home/hx/linux/tools/openssl 
--disable-etcdefault-login CC=arm-linux-gnueabihf-gcc
AR=arm-linux-gnueabihf-ar //配置
#注意 以上命令以空格为界,这里为了美观 用了换行
#--with-zlib参数用于指定 zlib 库所在的目录
#--with-ssl-dir参数用于指定 openssl 库所在的目录
#2. 编译 不用make install
make

将编译完成后的文件移植到linux开发板中

1. 在开发板中创建目录

在开发板创建以下目录

/usr/local/bin
/usr/local/sbin
/usr/local/libexec
/usr/local/etc
/var/run
/var/empty

mkdir /usr/local/bin -p
mkdir /usr/local/sbin -p
mkdir /usr/local/libexec/ -p
mkdir /usr/local/etc -p
mkdir /var/run -p
mkdir /var/empty/ -p

2. 将文件拷贝到对应目录下

1. /usr/local/bin 拷贝以下文件
scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan

2. /usr/local/sbin 拷贝sshd
3. /usr/local/etc 拷贝moduli ssh_config sshd_config
4. /usr/local/libexec 拷贝sftp-server ssh-keysign

3. 创建对应软连接

cd /bin/
ln -s /usr/local/bin/scp
ln -s /usr/local/bin/sftp
ln -s /usr/local/bin/ssh
ln -s /usr/local/bin/ssh-add
ln -s /usr/local/bin/ssh-agent
ln -s /usr/local/bin/ssh-keygen
ln -s /usr/local/bin/ssh-keyscan

cd /sbin/
ln -s /usr/local/sbin/sshd

软连接创建完成以后就可以直接调用上面 ssh 相关命令了

将/usr/local/etc/sshd_config文件的 #PermitRootLogin改为
PermitRootLogin yes

4. 开发板上生成密钥文件

进入到开发板/usr/local/etc下

ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
ssh-keygen -t dsa -f ssh_host_dsa_key -N ""
ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N ""
ssh-keygen -t ed25519 -f ssh_host_ed25519_key -N ""

完成以后就会在/usr/local/etc 目录下产生 8 个以“ssh_host_”开头的秘钥文件
在这里插入图片描述

5. 开启SSH

直接输入命令

/sbin/sshd //启动 sshd 服务

#也可以在/etc/init.d/rcS 文件中加入如下命令,实现 ssh 服务开机自启动
/sbin/sshd &

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

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

相关文章

BLE学习(2):广播包报文格式详解

文章目录1 广播通道2 广播包参考手册: BLUETOOTH SPECIFICATION Version 5.0为了能够充分理解蓝牙的广播,我们先了解一下BLE架构的GAP(Generic Access Profile)层。 GAP层提供决定蓝牙设备之间如何交互的框架,包括: 蓝牙设备的角…

PHP 底层的运行机制和工作原理

阅读目录阐述一、PHP的设计理念及特点PHP 为什么没有多线程?1、PHP 与多线程2、PHP是单线程,多进程模型3、 php为什么选择多进程,而不是多线程4、场景二、PHP 四层体系1、上层应用2、Sapi3、Extensions(扩展)4、Zend 引…

【目标检测】Fast R-CNN论文详细解读

目录:Fast R-CNN论文解读一、前言1. R-CNN的步骤及缺点2. SPP Net的步骤二、Fast R-CNN1. R-CNN的缺点2. SPPNet的缺点3. Fast R-CNN的优点4. Fast R-CNN的模型结构和训练流程5. 初始化预训练网络结构6. 微调7. 多任务损失函数8. ROI层的反向传播9. SGD超参数选择10…

Java后端面试到底要如何准备?

我把面试准备拆成以下几个步骤: 1.写简历 2.整理好自己最熟悉的项目,相对有代表性的项目。 3.整理自己的技术栈 4.收拾好自己的自我介绍 5.被八股文 6.模拟面试 7.针对模拟面试表现出来的问题进行改进 8.开始投投简历 本人 10 年开发经验&#…

jsp课程设计管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 课程设计管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,使…

单片机毕业设计 stm32智能手环

文章目录1 简介1 项目背景意义2 系统方案的设计3 系统总体结构4 系统硬件设计4.1 主控模块4.2 姿态解算模块:MPU60504.3 DS3231实物图4.4 TFT显示模块4.5 硬件连接效果5 跌倒检测算法原理5.1 跌倒检测的判定流程5.2 关键算法实现1 简介 🔥 Hi&#xff0…

CIPU落地专有云:是“小众需求”还是“机会之门”?

2022 年 11 月,云栖大会主论坛,阿里巴巴集团副总裁、阿里云智能基础产品事业部负责人蒋江伟分享了阿里云专有云的一项新进展 —— CIPU 落地飞天企业版。在分析师峰会上,阿里巴巴集团研究员、阿里云专有云总经理刘国华也向分析师们详细介绍了…

双一流高校全球通邮经验:Coremail安全海外中继提升科研效率

在这个“后疫情时代”,高校间的国际交流合作更应架起桥梁,承担起文明交流互鉴的责任,邮件往来交流作为学术交流的重要工具,保障全球高校学术交流安全畅通,是Coremail针对高校教育邮件服务的重点之一。 针对高校行业面临…

python一键采集高质量陪玩,心动主播随心选......

人生苦短,我用python 北京时间11月6日上午,2022英雄联盟全球总决赛(S12)冠亚军决赛在美国旧金山大通中心球馆进行,随着DRX的成功夺冠,在全球进一步掀起了电竞热潮。 newzoo 《2022电竞市场报告》显示&…

《MySQL实战45讲》——学习笔记18 “索引失效、函数/隐式转换“【建议收藏】

本文介绍几种MYSQL中索引失效的典型SQL用法,包括对索引字段使用函数、索引字段隐式类型转换(如字符串转数值类型,实质上也是使用CAST函数)、索引字段隐式字符编码转换(如utf8mb4字符集与utf8字符集的等值判断&#xff…

Leetcode101:对称二叉树

原文链接:101. 对称二叉树 - 力扣(LeetCode) 题目 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:r…

日志异常检测准确率低?一文掌握日志指标序列分类

背景 目前,日志异常检测算法采用基于时间序列的方法检测异常,具体为:日志结构化->日志模式识别->时间序列转换->异常检测。异常检测算法根据日志指标时序数据的周期性检测出历史新增、时段新增、时段突增、时段突降等多种异常。 然…

那么多优秀的自动化测试工具,而你只知道Selenium?

如今,作为一名软件测试工程师,几乎所有人都需要具备自动化测试相关的知识,并且懂得如何去利用工具,来为企业减少时间成本和错误成本。这是为什么呢? 在以前,测试人员一般都只需要扮演终端用户,…

【云原生 | Kubernetes 系列】--Gitops持续交付 ArgoCD 部署与概念

1. Pull Pipeline 使用Pull Pipeline可以不在集群以外的地方保存凭据,避免凭据泄露的风险 工作模式: 两个Git仓库. 程序代码 程序员维护 分支策略 Hotfix Feature Develop Release Master 部署配置 基于OAM管理 Updater CI流水线交付了新的Image Operator Spec 期望状态 …

UE5笔记【一】安装、第一个关卡:光线、原点、平面;光线、天空、云朵;内容抽屉;运动控制;

第一步:安装UE5 下载Epic Games客户端。 下载EpicGames客户端,完成注册账户。 然后选择【库】、选择【引擎版本】后面的加号【】、然后点击【下拉箭头】选择你要安装的版本。点击【安装】。 特别提醒:请找一块特别大的硬盘存储空间&#xf…

prometheus+alertmanager 企业微信告警

一、应用安装启动 1、软件准备 alertmanager-0.24.0.linux-amd64.tar.gz blackbox_exporter-0.22.0.linux-amd64.tar.gz node_exporter-1.4.0.linux-amd64.tar.gz prometheus-2.40.0-rc.0.linux-amd64.tar.gz 2、配置文件 cat /data/prometheus/prometheus.yml #根据自己情况…

liunx集成jmeter进行压测实践

首先liunx环境需要部署jdk 1,获取jmeter免安装包:点击我获取免安装包 2,获取jmeter-manger工具,用于生成报告,日志等 点击我获取工具 3,在服务器上新建一个文件夹存放jmeter,推荐在/usr/local/下面,我这里由于权限问…

微服务真的过时了吗?Twitter员工因为微服务被马斯克解雇了

马斯克吐槽微服务 最近Twitter因为马斯克收购而大幅裁员的消息闹得可谓是沸沸扬扬,但是最近马斯克吐槽Twitter内部服务200个RPC的新闻更是闹得不可开交,并且和员工在twitter上的争论更是因为了程序猿界的广泛转发和评论 微服务真的是一个糟糕的设计吗&a…

如何处理海量数据文件以及大文件数据查找

目录 一.处理海量整数文件 ①问:假定有40亿个无符号整数,判断某数据是否在其中? ②问:假定有40亿个无符号整数,找到只出现一次的数据,两次,三次...? ③问:两个文件各…

[ Linux ] 动静态库 手把手教你写一个自己的库

目录 静态库与动态库 生成 发布动静态库 形成发布静态库 形成发布动态库 一个makefile同时生成动静态库 如何使用动静态库 使用静态库 正确做法: 使用动态库 运行动态库 为什么动态库运行时有找库的步骤 静态库与动态库 静态库(.a&#xff0…