博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将SSH移植到arm soc上
阅读量:6425 次
发布时间:2019-06-23

本文共 2456 字,大约阅读时间需要 8 分钟。

hot3.png

由于用的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/compressedtar -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.8vim MakefileCC=arm-none-linux-gnueabi-gccAR=arm-none-linux-gnueabi-arCPP =arm-none-linux-gnueabi-gcc -ELDSHARED=arm-none-linux-gnueabi-gccmakemake install

b. 编译openssl

cd /home/jack/work/ssh/compressedtar -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-gccmakemake install

c. 编译openssh

cd /home/jack/work/ssh/compressedtar -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-armake

     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密码即可登录了。

转载于:https://my.oschina.net/JackiOS/blog/646882

你可能感兴趣的文章
Oracle Net Configuration(监听程序和网络服务配置)
查看>>
c语言_判断例子
查看>>
ubuntu重启不清除 /tmp 设置
查看>>
面向对象
查看>>
JSON
查看>>
SAP发布wbservice,如果有权限管控的话,需要给这个webservice加权限
查看>>
16.Python网络爬虫之Scrapy框架(CrawlSpider)
查看>>
stm 常用头文件
查看>>
mac 删除文件夹里所有的.svn文件
查看>>
程序制作 代写程序 软件定制 代写Assignment 网络IT支持服务
查看>>
mysql 案例~select引起的性能问题
查看>>
直接读取图层
查看>>
springsecurity 源码解读 之 RememberMeAuthenticationFilter
查看>>
HTML5标准学习 - 编码
查看>>
JS 时间戳转星期几 AND js时间戳判断时间几天前
查看>>
UVa11426 最大公约数之和(正版)
查看>>
mime
查看>>
SQL练习之求解填字游戏
查看>>
DOM
查看>>
关于网上商城开发的随笔记录1
查看>>