文档章节

将SSH移植到arm soc上

Jack鸿燊
 Jack鸿燊
发布于 2016/03/24 18:42
字数 686
阅读 94
收藏 0
点赞 1
评论 0

由于用的SOC没有内置ssh,产品投放市场之后可能会有安全隐患,因此决定自己移植ssh,参考了网上的博文,将过程记录如下

参考的博文:http://blog.csdn.net/ctbinzi/article/details/5929800

  1. 要下载的源码包

    1. openssl-1.0.2g.tar.gz    http://www.openssl.org/source/

    2. openssh-7.2p2.tar.gz    http://www.openssh.com/portable.html#ftp

    3. zlib-1.2.8.tar.gz    http://www.zlib.net/

    2. 交叉编译

    我在编译服务器上我的工作目录(/home/jack/work)下新建目录ssh,进入ssh,新建目录compressed、install、source。

    将下载好的源码包拷贝至compressed目录下

    a. 编译zlib

    cd /home/jack/work/ssh/compressed
    tar -zxvf zlib-1.2.8.tar.gz -C ../source/
    cd ../source/zlib-1.2.8
    ./configure --prefix=/home/jack/work/ssh/install/zlib-1.2.8
    vim Makefile
    CC=arm-none-linux-gnueabi-gcc
    AR=arm-none-linux-gnueabi-ar
    CPP =arm-none-linux-gnueabi-gcc -E
    LDSHARED=arm-none-linux-gnueabi-gcc
    
    make
    
    make install
  2. b. 编译openssl

    cd /home/jack/work/ssh/compressed
    tar -zxvf openssl-1.0.2g.tar.gz -C ../source/
    cd ../source/openssl-1.0.2g
    ./Configure --prefix=/home/jack/work/ssh/install/openssl-1.0.2g  os/compiler:arm-none-linux-gnueabi-gcc
    make
    make install
  3. c. 编译openssh

    cd /home/jack/work/ssh/compressed
    tar -zxvf openssh-7.2p2.tar.gz -C ../source/
    cd ../source/openssh-7.2p2
    ./configure --host=arm-none-linux-gnueabi --with-libs --with-zlib=/home/jack/work/ssh/install/zlib-1.2.3 --with-ssl-dir=/home/jack/work/ssh/install/openssl-1.0.2g --disable-etc-default-login CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar
    make

     3. 目标板文件系统设置

        a. 在目标板上创建以下目录:

            /usr/local/bin/

            /usr/local/sbin/

            /usr/local/etc/

            /usr/local/libexec/

            /var/run/

            /var/empty/

        b. 将编译服务器上的文件拷贝到目标板对应文件夹下:

            进入/home/jack/work/ssh/source/openssh-7.2p2下,将scp  sftp  ssh  ssh-add  ssh-agent  ssh-keygen  ssh-keyscan拷贝至目标板的/usr/local/bin下;将moduli ssh_config sshd_config拷贝至目标板的/usr.local/etc下;将sftp-server  ssh-keysign 拷贝至目标板的 /usr/local/libexec目录下;将sshd 拷贝至目标板的/usr/local/sbin/目录下。记得修改可执行权限。

            进入/home/jack/work/ssh/source/zlib-1.2.8下,将libz.so.1.2.8拷贝至目标板的/lib/目录下,并创建软连接

ln -s libz.so.1.2.8 libz.so.1

        c. 生成key文件

cd /usr/local/etc/
../bin/ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
../bin/ssh-keygen -t dsa -f ssh_host_dsa_key -N ""
../bin/ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N ""
../bin/ssh-keygen -t ed25519 -f ssh_host_ed25519_key -N ""

        d. 添加用户

            如果编译服务器上有ssh服务,那么将主机上 /etc/目下的 passwd, shadow, group 三个文件拷贝到目标板的 /etc目录下, 同时记得将passwd的最后 /bin/bash 该为 /bin/sh 。

            如果没有,那么就手动建立。

            在目标板的passwd中添加sshd用户:
            sshd:x:110:65534::/var/run/sshd:/usr/sbin/nologin
            在shadow中也添加对应的项:
            sshd:!:14069:0:99999:7:::

    4. 测试

/usr/local/sbin/sshd

    在终端下执行

ssh root@202.0.0.145

    输入root密码即可登录了。

© 著作权归作者所有

共有 人打赏支持
Jack鸿燊
粉丝 4
博文 10
码字总数 4667
作品 0
海淀
程序员
Nvidia宣布集成192个GPU核心的64位ARM处理器

Nvidia在CES上宣布了集成192个GPU核心的系统级芯片Tegra K1。Tegra K1的两大亮点是使用了192个Kepler架构的GPU核心,其性能逼近Nvidia的低端桌面显卡GeForce GT 630或635;另一大亮点是高端版...

oschina
2014/01/07
4.3K
20
ARM体系结构

参考资料:《ARM裸机全集---朱有鹏老师》 1、RISC和CISC的区别 参考资料:http://baike.so.com/doc/6750698-6965257.html CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架...

为更好铭天
2017/04/13
0
0
mkconfig脚本分析

声明:本文由个人学习过程中整理而成,转载请注明出处。 1、uboot/mkconfig (1)uboot是一个多CPU多架构的统一bootloader, 为了完成针对的特定目标板,目标架构的编译,需要给Makefile指明哪...

为更好铭天
2017/04/13
0
0
Linux芯片级移植与底层驱动(基于3.7.4内核) --内核节拍

宋宝华 Barry Song <21cnbao@gmail.com> 新浪微博: @宋宝华Barry 1. SoC Linux底层驱动的组成和现状 为了让Linux在一个全新的ARM SoC上运行,需要提供大量的底层支撑,如定时器节拍、中断控...

21cnbao
2013/01/26
0
0
从WinCE到Linux

  到新的公司已经快两个月了,新的工作主要方向是Linux驱动移植和Android系统定制。由于项目还在立项的阶段,并没有分配具体的工作任务,所以找来一个Linux的开发板先玩一玩。它采用的处理...

helpful
2016/06/04
0
0
安装openssh 到 am5728 板子上

安装openssh 到 am5728 板子上 注意:目录不要放到虚拟机与windows的共享目录。 准备 虚拟机上进到目录 /home/llf/ssh 创建目录:zlib.install 和 openssl.install $ cd ssh # 进入 ssh 目录...

llf_17
2016/09/29
0
0
硬件开发之mcu

架构 做嵌入式硬件开发,要以某个控制器为核心,引出其它外围器件。主流上可以按功能强弱分类为 51系列8位mcu——cortex Mx系列32位mcu——cortex A系列 SoC,其中51是x86指令,cortex是arm...

心翔
2016/06/14
47
0
linux-2.6.14移植到S3C2440

linux-2.6.14移植到S3C2440 嵌入式开发交流群2:289195589,欢迎加入! 现在应该很少使用2.6.14的内核了,但由于项目需要,最近移植了2.6.版本的内核到S3C2440上,并移植了CS8900网卡驱动(网...

长平狐
2013/06/03
144
0
pcDuino的u-boot移植与分析

一、准备工作 1.获取支持pcDuino的u-boot源码 https://github.com/linux-sunxi/u-boot-sunxi 在XP下直接点ZIP即可开始下载 2.获取交叉编译链 http://code.google.com/p/smp-on-qemu/downloa...

pc朵拉
2013/07/02
0
0
Arm推出PSA平台安全架构 助力物联网安全

Arm是物联网的首选架构,迄今为止已为1250亿芯片提供了计算能力。公司有一个宏大的愿景,即到2035年实现1万亿个设备的安全互连。但在实现这一愿景之前,业界需要达成共识——不再让安全成为互...

gunser
04/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Hbase增删查改工具类

package cn.hljmobile.tagcloud.service.data.repository;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util......

gulf
9分钟前
0
0
详解机器学习中的梯度消失、爆炸原因及其解决方法

前言 本文主要深入介绍深度学习中的梯度消失和梯度爆炸的问题以及解决方案。本文分为三部分,第一部分主要直观的介绍深度学习中为什么使用梯度更新,第二部分主要介绍深度学习中梯度消失及爆...

tantexian
10分钟前
0
0
JavaMail 发送邮件

参考 https://www.cnblogs.com/xdp-gacl/p/4216311.html 发送html格式邮件 package com.example.stumgr;import java.util.Properties;import javax.mail.Message;import javax.mail......

阿豪boy
12分钟前
0
0
Mongodb安装教程

MongoDB是一个基于分布式文件存储的数据库,是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bso...

木筏笔歆
13分钟前
0
0
Hadoop之YARN命令

概述 YARN命令是调用bin/yarn脚本文件,如果运行yarn脚本没有带任何参数,则会打印yarn所有命令的描述。 使用: yarn [--config confdir] COMMAND [--loglevel loglevel] [GENERIC_OPTIONS] [...

舒运
14分钟前
0
0
个推数据统计产品(个数)iOS集成实践

最近业务方给我们部门提了新的需求,希望能一站式统计APP的几项重要数据。这次我们尝试使用的是个推(之前专门做消息推送的)旗下新推出的产品“个数·应用统计”,根据官方的说法,个推的数...

个推
15分钟前
0
0
Git 修改提交的用户名和邮箱名字

在通过git提交代码时,发现提交的用户名是自己mac的账户名,想要修改为其他名字和邮箱。 首先可以通过以下命令查看当前配置下的信息,包括用户名和邮箱: > git config --list 针对单项目的相...

edwardGe
18分钟前
0
0
Object.defineProperty()

Object.defineProperty(obj, props)方法直接在一个对象上定义新的属性或修改现有属性,并返回该对象。 obj 在其上定义或修改属性的对象 props 要定义其可枚举属性或修改的属性描述符的对象 ...

litCabbage
19分钟前
0
0
JEESZ分布式框架--单点登录集成方案(三)

多项目集成单点登录配置 当sso验证完成之后,客户端系统需要接收sso系统返回的结果时,需要定义一个过滤器获取返回结果,然后针对返回结果做相关处理.如果不需要做处理时,此处Filter也可以不...

明理萝
20分钟前
0
1
超简单的利用plist 查看ipa包名及其它信息

1.下载ipa安装包 2.用rar等工具打开 3.将iTunesMetadata.plist文件解压出来 4.用http://www.atool.org/plist_reader.php在线反编译工具 5.在其中中找到softwareVersionBundleId 就是包名...

xiaogg
20分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部