关闭

成功移植 SSH 服务到 ARM 开发板上

58人阅读 评论(0) 收藏 举报
SSH协议族可以用来进行远程控制, 附加的SFTP协议可轻松实现在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,因为它们使用明文传送密码。
OpenSSH常常被误认以为与OpenSSL有关联,但实际上这两个计划的有不同的目的,不同的发展团队,名称相近只是因为两者有同样的软件发展目标──提供开放源代码的加密通讯软件

1 、下载

首先下载几个源码包

1、移植openssh需要三个包:openssh、openssl 和 zlib,地址如下:

因为它们之间没有版本所谓的版本冲突,所以都下载最新板的即可。本文以zlib-1.2.3.tar.gzopenssl-0.9.8e.tar.gzopenssh-5.6p1.tar.gz这三个版本为例,其他版本过程一样。

2 、部署

1、创建工作目录:
mkdir /work
cd /work

2、在/work目下面创建ssh目录

mkdir /work/ssh 
cd /work/ssh
mkdir compressed install source 

//Install 软件安装目录
//source 源码包解压目录
mv tarpakgs/openssh-5.6p1.tar.gz /work/ssh/compressed
mv tarpakgs/openssl-0.9.8e.tar.gz /work/ssh/compressed
mv tarpakgs/zlib-1.2.3.tar.gz /work/ssh/compressed


3、解压安装包:
cd /work/ssh/compressed/
tar zxvf zlib-1.2.3.tar.gz –C ../source
tar zxvf openssl-0.9.8e.tar.gz –C ../source
tar zxvf openssh-5.6p1.tar.gz –C ../source

3 、交叉编译 zlib

1、编译zlib
修改Makefile :
CC=gcc 改为:
CROSS=/usr/local/arm/3.4.1/bin/arm-linux-
CC=$( CROSS ) gcc
LDSHARED= gcc 改为:LDSHARED=$( CROSS ) gcc
CPP= gcc - E 改为:CPP=$( CROSS ) gcc - E
AR= ar rc 改为:AR=$( CROSS ) ar rc
开始编译:
make
make install

2、编译openssl 
./configure --prefix=/home/zuopeng/work/ssh/install/openssl os/compiler:arm-linux-gcc
make
make install

3、编译openssh
./configure --host=arm-linux --with-libs --with-zlib=/home/zuopeng/work/ssh/install/zlib --with-ssl-dir=/home/zuopeng/work/ssh/install/openssl --disable-etc-default-login CC=arm-linux-gcc AR=arm-linux-ar
make(记住不需要make install,具体原因未知)

4、ARM开发板准备

确保目标板上有以下目录,若没有,则新建:
/usr/local/bin
/usr/local/etc
/usr/libexec
/var/run
/var/empty/sshd
将 openssh目录下文件拷贝到开发板系统中,具体为:
  • scp、sftp、ssh 、ssh-add、ssh-agent、ssh-keygen、ssh-keyscan共7个文件拷贝到开发板/usr/local/bin
  • moduli、ssh_config、sshd_config共3个文件拷贝到开发板 /usr/local/etc
  • sftp-server、ssh-keysign 共2个文件拷贝到开发板 /usr/libexec
  • sshd 拷贝到/usr/sbin
在主机上:
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 dsa -f ssh_host_ed25519_key -N ""

修改 ssh_host_ed25519_key 权限为 600:

$ chmod 600 ssh_host_ed25519_key

其中 ssh_host_ed25519_key 是SSH第二版协议用到的key,需要修改权限,否则会提示以下错误:

Permissions 0644 for '/usr/local/etc/ssh_host_ed25519_key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /usr/local/etc/ssh_host_ed25519_key
Could not load host key: /usr/local/etc/ssh_host_ed25519_key
将生成的 ssh_host_* 4个文件copy到目标板的 /usr/local/etc/目录下

(5) 添加用户(这一步不要做)
将主机上/etc/ 目下的 passwd, shadow, group 三个文件copy到目标板的 /etc 目录下, 同时记得将passwd的最后 /bin/bash 该为 /bin/sh
//这一步以后,开发板上的用户结构与你本机的结构就是一样的了,所以在cp之前先把你自己的root密码设好
//#passwd设置root密码,然后在把上面3个文件cp到开发板/etc下 
其实可以删除不需要的一些用户。

5、注意事项(开发板上操作)

1、/打开开发板/usr/local/sshd_config,将PermitRootLogin yes前的注释“#”号去掉。
2、打开 /etc/passwd 文件,在最后添加下面这一行:
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

如果开发板的 root 用户还没有密码,键入以下命令然输入两次密码来修改,否其他设备无法连:

$ passwd root
密码更改失败,查询/etc/目录下是否有shadow文件夹,没有请创建

ssh root@192.168.1.125 即可登录
重启开发板之后,发现ssh 失败了,原因是因为sshd 服务没有启动,需要在/etc/init.d/rcS 中添加一行,设置为开机启动
/usr/sbin/sshd



1
0
查看评论
发表评论
* 以上用户言论只代表其个人钱柜娱乐开户,不代表CSDN网站的钱柜娱乐开户或立场

成功移植 SSH 服务到 ARM 开发板上

SSH协议族可以用来进行远程控制, 附加的SFTP协议可轻松实现在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,...
  • xy010902100449
  • xy010902100449
  • 2015-12-17 17:05
  • 3017

移植 ssh 到开发板

参考:http://blog.sina.com.cn/s/blog_86d540e401019yie.html 1》下载需要的源码 下载zlib: zlib-1.2.3.tar.gz       ...
  • lizuobin2
  • lizuobin2
  • 2016-09-25 21:17
  • 1501

SSH服务移植到ARM单板

SSH服务移植到ARM单板
  • hailang5337
  • hailang5337
  • 2017-02-24 10:16
  • 467

向嵌入式linux开发板移植openSSH

向嵌入式linux开发板移植openSSH 晚上没事干,想着能不能把高大上的openSSH移植到我现在开发的嵌入式linux开发板上,前不久刚弄出来dropbear,但遇到一些小问题,一会说,所以...
  • SiberiaBear
  • SiberiaBear
  • 2016-08-19 11:32
  • 4032

成功移植 SSH 服务到 ARM 开发板上

转载:/xy010902100449/article/details/50343733SSH协议族可以用来进行远程控制, 附加的SFTP协议可轻松实现在计算机之...
  • u014199378
  • u014199378
  • 2017-05-17 18:05
  • 459

移植opencv到ARM开发板

环境:ubuntu9.10 1.准备工作 a. 安装交叉编译链 我使用的是arm-linux-gcc 4.3.2,解压到目录/usr/local/arm/4.3.2,然后在环境变量PATH中...
  • WANG__RONGWEI
  • WANG__RONGWEI
  • 2016-02-11 19:30
  • 1180

SSH 移植到ARM上

编译器arm-linux-gcc和arm-none-linux-gnueabi-gcc成功。 步骤: 1.下载源码包,地址如下: openssh  http://www.openssh....
  • van38686061
  • van38686061
  • 2015-07-24 16:54
  • 1231

[转载]通过ssh连接开发板之arm-linux下ssh的安装使用

原文地址:通过ssh连接开发板之arm-linux下ssh的安装使用作者:蒙国造 做这一步之前,首先确定已经 你的本机上建立好了arm-linux交叉编译环境#arm-linux-gcc -v开发...
  • buynow123
  • buynow123
  • 2016-07-15 14:41
  • 2393

ARM开发板系统移植-----kernel的编译

前面一篇文章http://www.cnblogs.com/linzizhang/p/4817336.html介绍了开发板上系统软件的第一部分--bootloader的编译方法。   背景:把bootl...
  • u013819957
  • u013819957
  • 2016-03-11 09:30
  • 713

Qt程序移植到ARM

Qt程序移植到ARM 公司之前做了个项目是基于arm+linux的体系,想要在板子上运行c++的服务器程序,思前想后觉得Qt既对c++有非常好的兼容。又有非常之好的跨平台性将来移植到别的系统非常的方...
  • yanchen0314
  • yanchen0314
  • 2014-06-09 18:00
  • 966
    个人资料
    • 访问:1124次
    • 积分:44
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:19篇
    • 译文:0篇
    • 评论:0条