ARM交叉编译搭建SSH

首先搭建好arm-linux交叉编译环境,开发板和主机可以ping通。

一、下载需要的源码

下载zlib: zlib-1.2.3.tar.gz
下载ssl: openssl-0.9.8d.tar.gz
下载ssh: openssh-4.6p1.tar.gz

二、交叉编译

新建目录/home/leo/ssh,并且将三个源码复制到该目录下。
cp zlib-1.2.3.tar.gz openssl-0.9.8d.tar.gz openssh-4.6p1.tar.gz /home/arm/sshwork
/home/leo/ssh下新建目录lib,用来保存编译zlib和openssl生成的文件。

编译zlib
cd zlib-1.2.3/
./configure –prefix=/home/leo/ssh/lib/zlib-1.2.3
编辑makefile
CC=arm-linux-gcc
AR=arm-linux-ar rc
CPP =arm-linux-gcc -E
LDSHARED=arm-linux-gccmake
make install
编译openssl
cd openssl-0.9.8d
./Configure --prefix=/home/leo/ssh/lib/openssl-0.9.8d os/compiler:arm-linux-gcc
make
make install
编译openssh
cd openssh-4.6p1/
./configure –host=arm-linux –with-libs –with-zlib=/home/leo/ssh/lib/zlib-1.2.3
–with-ssl-dir=/home/leo/ssh/lib/openssl-0.9.8d –disable-etc-default-login
CC=arm-linux-gcc AR=arm-linux-ar
make
不用make install
完成后当前目录下会生成SSH可执行文件

三、安装SSH

配置文件

确保目标板上有以下目录

/usr/local/bin/
/usr/local/sbin/
/usr/local/etc/
/usr/local/libexec/
/var/run/
/var/empty/
chmod 755 /var/empty
  1. 复制 /home/leo/ssh/openssh-4.6p1 目录下的 sshd 到开发板的 /usr/local/sbin/
  2. 复制 ** scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan ** 到开发板的 /usr/local/bin
  3. 复制 sftp-server ssh-keysign/usr/local/libexec
  4. 复制 sshd_config ssh_config/usr/local/etc/
  5. 【可以省略此步骤】复制 /home/leo/ssh/zlib-1.2.3/lib/ 目录下的 libz.so.1.2.5/lib/
    然后建立软链接 ln -s libz.so.1.2.5 libz.so.1
生成Key文件

在开发板上,进入/usr/local/etc/目录,执行以下命令生成key:

../bin/ssh-keygen -t rsa1 -f ssh_host_key -N ""
../bin/ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
../bin/ssh-keygen -t dsa -f ssh_host_dsa_key -N ""

** 修改当前目录下sshd_config文件 **
** /etc/ssh 改为 /usr/local/etc **

#  HostKey for protocol version 1
HostKey /etc/ssh/ssh_host_key  》》》 HostKey /usr/local/etc/ssh_host_key
#  HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key 》》》 HostKey /usr/local/etc/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key 》》》 HostKey /usr/local/etc/ssh_host_dsa_key
设置系统时间

date
Fri Aug 20 16:02:40 UTC 2021
如果开发板时间是1970需要设置为当前时间,否则ssh登录一直报错:

date -s "2021-08-20 16:11"

改时间后设置root密码

passwd root
其他配置

开机自动设置IP

echo "ifconfig eth0 10.10.82.45 netmask 255.255.255.0" >> /etc/profile

开机自动设置IP

echo "ifconfig eth0 10.10.82.45 netmask 255.255.255.0" >> /etc/profile

添加用户
复制主机 /etc 下的 passwd shadow group 出来,删除不需要的一些用户
将passwd的 /bin/bash 改为 /bin/sh,然后复制到开发板 /etc 下

四、启动SSH

绝对路径启动sshd

/usr/sbin/sshd

可能出现的错误:

Permissions 0755 for '/usr/local/etc/ssh_host_dsa_key' are too open.
//将开发板/usr/local/etc/下的key文件 ssh_host_* 权限改为700。Permission denied (publickey,password,keyboard-interactive).
//打开开发板/usr/local/sshd_config,将PermitRootLogin yes前的注释“#”号去掉。
主机: $  ssh root@10.10.82.45(开发板的ip)//root密码就是开发板root密码,如果没有设置,用passwd root设置。

参考:https://blog.csdn.net/gubenpeiyuan/article/details/32325691

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

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

相关文章

Android:Volley框架使用

3.15 Volley框架使用 Volley框架主要作为网络请求,图片加载工具。当应用数据量小、网络请求频繁,可以使用Volley框架。 框架Github地址:https://github.com/google/volley Volley框架的简单使用,创建项目Pro_VolleyDemo。将Github上下载Volley框架源代码,volley-master.zi…

Linux中ps/kill/execl的使用

ps命令: ps -aus或者ps -ajx或者 ps -ef可以查看有哪些进程。加上 | grep "xxx" 可以查看名为”xxx"的进程。 ps -aus | grep "xxx" kill命令: kill -9 pid 杀死某个进程 kill -l 查看系统有哪些信号 execl函数&#…

MySQL索引分类

索引可以分为主键索引、唯一索引、常规索引、全文索引 1、主键索引 2、唯一索引 3、常规索引 4、唯一索引 1、主键索引 含义:针对于表中主键创建的索引 特点:默认自动创建,只能有一个 关键词:PRIMARY 2、唯一索引 含义&a…

JavaScript滚动事件

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 滚动是网页交互不可或缺的一部分。监听页面和元素的滚动事件,可以帮助…

面试复盘——10

前言 又是低级错误挂了的。。自己还是太菜了。 而且这场的录屏没录好,没声音,我靠。 面试 先是自我介绍 先交流了实习项目 腾讯云实习项目:问到了协程当时具体是怎么用的,如何通信、如何控制协程的。 另一个实习项目&#x…

跟着cherno手搓游戏引擎【22】CameraController、Resize

前置: YOTO.h: #pragma once//用于YOTO APP#include "YOTO/Application.h" #include"YOTO/Layer.h" #include "YOTO/Log.h"#include"YOTO/Core/Timestep.h"#include"YOTO/Input.h" #include"YOTO/KeyCod…

力扣刷题之旅:进阶篇(五)—— 动态规划(DP)的妙用

力扣(LeetCode)是一个在线编程平台,主要用于帮助程序员提升算法和数据结构方面的能力。以下是一些力扣上的入门题目,以及它们的解题代码。 --点击进入刷题地址 引言: 在算法的世界中,动态规划&#xff…

ubuntu22.04@laptop OpenCV Get Started: 003_image_resizing

ubuntu22.04laptop OpenCV Get Started: 003_image_resizing 1. 源由2. resize应用Demo3 image_resize3.1 C应用Demo3.2 Python应用Demo3.3 重点过程分析3.3.1 根据宽高调整大小3.3.2 根据比例调整大小3.3.3 根据插值方式调整大小 4. 总结5. 参考资料 1. 源由 在OpenCV中调整图…

[HTTP协议]应用层的HTTP 协议介绍

目录 1.前言 2.使用fiddler抓包来观察HTTP协议格式 3.HTTP协议的基本格式 2.1请求 2,1.1首行 2.1.2请求头 2.1.3空行 2.2响应 2.2.1首行 2.2.2响应头 键值对 ​编辑2.2.3空行 2.2.4载荷(响应正文) 3.认识URL 3.1关于URL encode 1.前言 我们在前面的博客中,简单的…

力扣231. 2 的幂(数学,二分查找,位运算)

Problem: 231. 2 的幂 文章目录 题目描述思路即解法复杂度Code 题目描述 思路即解法 思路1:位运算 1.易验证2的幂为正数; 2.易得2的幂用二进制表示只能有一个位为数字1 3.即将其转换为二进制统计其二进制1的个数 思路2:数学 当给定数n大于1时…

DNS 域名系统——应用层

目录 1 域名系统 DNS 1.1 域名系统 1.2 互联网的域名结构 1.2.1 顶级域名 TLD(Top Level Domain) (1) 国家顶级域名 nTLD (2) 通用顶级域名 gTLD (3) 基础结构域名 (infrastructure domain) 1.3 域名服务器 1.3.1 域名服务器的四种类型 (1…

Springboot拦截器中跨域失效的问题、同一个接口传入参数不同,一个成功,一个有跨域问题、拦截器和@CrossOrigin和@Controller

Springboot拦截器中跨域失效的问题 一、概述 1、具体场景 起因: 同一个接口,传入不同参数进行值的修改时,一个成功,另一个竟然失败,而且是跨域问题拦截器内的request参数调用getHeader方法时,获取不到前端…

JAVA设计模式之代理模式详解

代理模式 1 代理模式介绍 在软件开发中,由于一些原因,客户端不想或不能直接访问一个对象,此时可以通过一个称为"代理"的第三者来实现间接访问.该方案对应的设计模式被称为代理模式. 代理模式(Proxy Design Pattern ) 原始定义是:让你能够提供对象的替代…

代码随想录算法训练营29期|day41 任务以及具体任务

第九章 动态规划part03 343. 整数拆分 class Solution {public int integerBreak(int n) {//dp[i] 为正整数 i 拆分后的结果的最大乘积int[] dp new int[n1];dp[2] 1;for(int i 3; i < n; i) {for(int j 1; j < i-j; j) {// 这里的 j 其实最大值为 i-j,再大只不过是重…

单片机学习笔记---DS1302时钟

上一节我们讲了DS1302的工作原理&#xff0c;这一节我们开始代码演示。 新创建一个工程写上框架 我们需要LCD1602进行显示&#xff0c;所以我们要将LCD1602调试工具那一节的LCD1602的模块化代码给添加进来 然后我们开始创建一个DS1302.c和DS1302.h 根据原理图&#xff0c;为了…

Java项目:19 基于SpringBoot的医院管理系统

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 医院管理系统 分为三个角色 管理员、医生、病人 管理员的主要功能&#xff1a;系统管理、医生管理、患者管理、预约管理、病史管理、住院信息管理、管…

ARM PAC/BTI/MTE三剑客精讲与实战

一、PAC指针认证精讲与实战 思考 1、什么是栈溢出攻击&#xff1f;什么是代码重用攻击&#xff1f;区别与联系&#xff1f; 2、栈溢出攻击的软&硬件缓解技术有哪些&#xff1f;在TF-A&OPTEE上的应用&#xff1f; 3、什么是ROP攻击&#xff1f;对ROP攻击的缓解技术&…

深入浅出TCP/IP协议簇:理论与Python实践

源码分享 https://docs.qq.com/sheet/DUHNQdlRUVUp5Vll2?tabBB08J2 当我们提到网络编程或数据爬取时&#xff0c;了解基础的网络通信协议—TCP/IP协议簇是非常有用的。TCP/IP不是单一的协议&#xff0c;而是一组使互联网工作的协议的集合。在本篇博客中&#xff0c;我们将探讨…

深入解析Linux中HTTP代理的工作原理

亲爱的Linux探险家们&#xff0c;准备好一起探索HTTP代理背后的神秘面纱了吗&#xff1f;在这个数字世界里&#xff0c;HTTP代理就像是一个神秘的中间人&#xff0c;默默地在你和互联网之间穿梭&#xff0c;为你传递信息。那么&#xff0c;这个神秘的中间人到底是如何工作的呢&…

centos7的git使用方法

下载git yum install git git克隆 git clone https...(图片中复制的内容) git提交到远程仓库 git add filename git commit -m "提交日志" git push git首次使用要配置邮箱和用户名 查看提交日志 git log 查看当前提交状态 git status