文档章节

将SSH移植到arm soc上

Jack鸿燊
 Jack鸿燊
发布于 2016/03/24 18:42
字数 686
阅读 103
收藏 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
海淀
程序员
私信 提问
设备树(Device Tree)科普--背景介绍

一、前言 作为一个多年耕耘在linux 2.6.23内核的开发者,各个不同项目中各种不同周边外设驱动的开发以及各种琐碎的、扯皮的俗务占据了大部分的时间。当有机会下载3.14的内核并准备学习的时候...

黑客画家
09/13
0
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
安装openssh 到 am5728 板子上

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

llf_17
2016/09/29
0
0
从WinCE到Linux

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

helpful
2016/06/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式锁的实现

redis实现分布式锁 方法1:普通实现方案 实现方式: 使用指令: set key 随机值 ex 5 nx.意思是当key不存在的时候设置key. 如果key存在返回OK,否则返回nil. 实现过程: 1.执行命令set key true ...

grace_233
21分钟前
1
0
解决CKEditor 4 富文本编辑器在图片组件无法显示[上传]选项卡的相关问题

关于解决CKEditor 4 富文本编辑器在图片组件无法显示[上传]选项卡的相关问题。 本文可能会对以下现象得以解决: 图片上传组件,没有 [上传] 选项卡。 资源无法加载 [imgupload] ( Uncaught E...

Eller
24分钟前
0
0
限制php解析、user_agent、php相关配置

11月20日任务 11.28 限定某个目录禁止解析php 11.29 限制user_agent 11.30/11.31 php相关配置 11.28、限定某个目录禁止解析php 核心配置文件内容 <Directory /data/wwwroot/www.123.com/upl...

zgxlinux
29分钟前
1
0
博客园首页新随笔联系订阅管理 随笔

注解Annotation实现原理与自定义注解例子 什么是注解? 对于很多初次接触的开发者来说应该都有这个疑问?Annontation是Java5开始引入的新特征,中文名称叫注解。它提供了一种安全的类似注释的...

onedotdot
46分钟前
4
1
Spring boot + redis 用RedisTemlate实现简单的String key value 操作

springboot集成redis, 简单的key, value缓存操作. 1. application-local.properties # redis on local#spring.redis.port=6379#spring.redis.host=localhost#spring.redis.password=......

园领T
59分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部