目录

一.SSHD编译(此步骤在虚拟机上执行)

1.1 在/root/目录下创建ssh目录

1.2 交叉编译zlib

1.3交叉编译openssl

1.4交叉编译openssh

二.移植(此步骤在开发板上执行)

2.1 在开发板上建立需要的目录

2.2 下面是在开发板上操作

2.3修改sshd_config

三、加入自启动脚本

参考:

注:如果想自行编译移植,即可从第一步开始;若已有sshd 、sftp-server、密钥等文件则直接进行第二个步骤;相关源码及编译后的文件在附件中可见。

一.SSHD编译(此步骤在虚拟机上执行)

源码包:zlib-1.2.3.tar.bz2

openssl-0.9.81.tar.gz

openssh-4.6p1.tar.gz

说明:本次只移植SSH的服务端,客户端相关程序和配置文件不拷贝到开发板。

1.1 在/root/目录下创建ssh目录

#mkdir /root/ssh

#cd /root/ssh

#mkdir compressed install source注:compressed用于存放源码包

install软件安装目录

source源码包解压目录

将三个源码包拷贝到compressed目录下。

1.2交叉编译zlib

# tar -jxvf zlib-1.2.3.tar.bz2  -C  ../source

# cd ../source/zlib-1.2.3

# ./configure --prefix=/root/ssh/install/zlib-1.2.3

# vi Makefile       //修改Makefile中的某些变量值,指定自己的交叉编译工具

CC=arm-linux-gnueabihf-gcc

CPP=arm-linux-gnueabihf-gcc -E

AR=arm-linux-gnueabihf-ar rc

LDSHARED=arm-linux-gnueabihf-gcc

保存退出执行make

make install

1.3交叉编译openssl

# cd /root/ssh/compressed/

# tar -zxvf openssl-0.9.81.tar.gz  -C  ../source

# cd ../source/openssl-0.9.81

#./Configure  --prefix=/root/ssh/install/openssl-0.9.81  os/compiler:arm-linux-gnueabihf-gcc

执行make(如果遇到错误输入rm -f /usr/bin/pod2man)

make install(如果遇到错误输入rm -f /usr/bin/pod2man)

1.4交叉编译openssh

# cd /root/ssh/compressed

# tar -zxvf openssh-4.6p1.tar.gz  -C ../source

# cd ../source/openssh-4.6p1

#./configure --host=arm-linux-gnueabihf --with-libs                                 --with-zlib=/root/ssh/install/zlib-1.2.3/ --with-ssl-dir=/root/ssh/install/openssl-0.9.81 --disable-etc-default-login CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar

#make注:不要make install

这时在/root/ssh/source/ openssh-4.6p1/目录下生成了sshd、sftp-server、密钥等文件。

可以用strip工具把sshd体积变小,以节省空间,操作如下:

#arm-linux-gnueabihf-strip -s sshd

还需要建立密钥(用ssh-keygen工具):

#ssh-keygen -t rsa1 -f ssh_host_key -N ""

#ssh-keygen -t rsa -f ssh_host_rsa_key -N ""

#ssh-keygen -t dsa -f ssh_host_dsa_key -N ""

会生成这六个密钥文件:

ssh_host_dsa_key

ssh_host_dsa_key.pub

ssh_host_key

ssh_host_key.pub

ssh_host_rsa_key

ssh_host_rsa_key.pub

二.移植(此步骤在开发板上执行)

2.1 在开发板上建立需要的目录

#mkdir -p /usr/local/etc

#mkdir -p /var/run /var/empty/sshd  并设定权限chmod 755 /var/empty

把在虚拟机下 /root/ssh/source/openssh-4.6p1生成的服务端相关文件拷贝到开发板相应目录下:

sshd和 sftp-server复制到开发板的/sbin/目录下

生成的六个密钥文件和sshd_config复制到/usr/local/etc/目录下

进入/usr/local/etc/目录下,修改权限:

# chmod 0644 *

# chmod 0600 ssh_host_dsa_key  ssh_host_key  ssh_host_rsa_key

2.2 下面是在开发板上操作

修改/etc/目录下的passwd和group文件,添加sshd用户和组

#vi /etc/passwd

在最后一行添加sshd:*:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

保存退出。

#vi /etc/group

在最后一行添加sshd:*:74:

保存退出。

2.3修改sshd_config

分别去掉下列语句前的注释号(即去掉#号)并修改为:

PermitRootLogin    yes―――――允许根用户登陆

PermitEmptyPasswords yes――――允许使用空密码

UsePrivilegeSeparation   no――――把安全级别降低,因为不会连接互联网

同时修改sftp-server的存放路径为 /sbin/sftp-server

运行sshd时要用绝对路径

#/sbin/sshd

这样可以在windows下用ssh客户端进行连接了。

三、加入自启动脚本

/etc/init.d目录下新建sshd文件

#! /bin/sh

sshd=/sbin/sshd

test -x "$sshd" || exit 0

case "$1" in

start)

echo -n "Starting sshd daemon"

start-stop-daemon --start --quiet --exec $sshd -b

echo "."

;;

stop)

echo -n "Stopping sshd"

start-stop-daemon --stop --quiet --exec $sshd

echo "."

;;

restart)

echo -n "Stopping sshd"

start-stop-daemon --stop --quiet --exec $sshd

echo "."

echo -n "Waiting for sshd to die off"

for i in 1 2 3 ;

do

sleep 1

echo -n "."

done

echo ""

echo -n "Starting sshd daemon"

start-stop-daemon --start --quiet --exec $sshd -b

echo "."

;;

*)

echo "Usage: /etc/init.d/sshd {start|stop|restart}"

exit 1

esac

exit 0

进入/etc/init.d目录执行命令

cd /etc/init.d

ln -sf ../init.d/sshd ../rc5.d/S30sshd

ln -sf ../init.d/sshd ../rc3.d/S30sshd

即可实现开机自动启动sshd服务。

源码下载: https://download.csdn.net/download/v6543210/10746939

参考:

1.Linux嵌入式学习-交叉编译openssl

https://www.cnblogs.com/ynxf/p/6375091.html

linux系统的7种运行级别

https://blog.csdn.net/ccfxue/article/details/52767863

/etc/rc.d/init.d自启动程序说明

https://blog.csdn.net/xysoul/article/details/44956525

openssh arm linux 编译,openssh编译安装到ARM嵌入式系统中相关推荐

  1. arm linux打印机驱动编译方法,嵌入式linux驱动打印机HP系列

    arm linux打印机驱动编译方法和过程记录(2017.03.15): 改动添加概述: 添加foo2zjs工具(用于发送数据到打印机进行打印): 添加gohstscript工具(用于转换文档格式到打 ...

  2. glib 2.0 arm linux,glib源码安装使用方法

    glib库是GTK+和GNOME工程的基础底层核心程序库,是一个综合用途的实用的轻量级的C程序库,它提供C语言的常用的数据结构的定义.相关的处理函数,有趣而实用的宏,可移植的封装和一些运行时机能,如事 ...

  3. linux usb网卡驱动 ko,qf9700 USB网卡在x86 linux和arm linux上的驱动安装以及配置

    最近要在一块老板子上面移植openwrt,需要扩展网口,于是选择了qf9700这款USB网卡,附赠的光盘里面有提供在linux下面安装的驱动源代码,所以我们要自己编译驱动源代码生成内核加载模块,加载模 ...

  4. linux 混音处理 arm,alsa移植到arm linux嵌入式系统中

    1  alsa-lib的移植 1.1  软件包下载 alsa-lib库:进入网站http://www.alsa-project.org/选择下载,在这里下载的是alsa-lib-1.0.22.tar. ...

  5. 开发人员学Linux(13):CentOS7安装配置IT设备监控系统Zabbix

    1.前言 在前一篇讲述了如何安装Memcached和Redis,在这一篇主要讲述如何安装企业级IT设备监控系统Zabbix.本人曾在某大型集团公司信息化部门工作,公司在多个城市以及一个城市的多个区有办 ...

  6. arm linux 内核崩溃,用sysrq-trigger实现ARM Linux一键内核崩溃、一键关机、一键dump信息等...

    原创 宋宝华 Linux阅码场 2018-01-12 sysrq有多种功能,对于ARM Linux这种嵌入式没键盘的系统来说,也可以通过/proc/sysrq-trigger来进行操作. 实验平台:Q ...

  7. linux python3安装proton_深度deepin系统中通过Lutris(wine、proton)运行逆水寒的方法 ......

    2.点击坐上的 + 图标,选择 Add Game-. Game info 中: Name 填写 NiShuiHan 或其他名称(Justice Online). Runner 选择 Wine. Rel ...

  8. linux python3安装proton_深度deepin系统中通过Lutris(wine、proton)运行逆水寒的方法...

    本文介绍在深度deepin操作系统中通过Lutris(wine.proton)成功运行逆水寒的方法,参考安装配置Lutris,一款Linux下多平台游戏管家. 成功运行逆水寒的方法 0.安装 wine ...

  9. linux图形界面鼠标变成小手_win10系统中安装ubuntu子系统及图形界面

    作为全球最流行且最有影响力的Linux开源系统之一,Ubuntu自发布以来在应用体验方面:有较大幅度的提升,即使对比Windows.MacoS等操作系统,最新版本的Ubuntu也不逊色.下面教大家在w ...

  10. xmpp安装到Linux服务器,在Ubuntu 18.04/16.04系统中安装Ejabberd XMPP Server的方法

    本文介绍在Ubuntu 18.04.Ubuntu 16.04系统中安装Ejabberd XMPP Server的方法,我们将从二进制安装程序安装ejabberd,它提供了一个功能齐全的ejabberd ...

最新文章

  1. redhat7配置本地yum、163 yum、epel 源
  2. 这群“未来零售之星” 收到了一份意义非凡的新年大礼
  3. abap 判断当前用户是否有某事物码权限
  4. Linux 与 Unix 到底有什么不同?
  5. OsharpNS轻量级.net core快速开发框架简明入门教程
  6. SQL Server 相关create操作语句
  7. curl post请求 header host_(科普文)curl quot;可quot;得一切
  8. Tricks(三十八)—— 在不计算欧式距离的前提下判断点到两点的距离哪个更近
  9. ModuleNotFoundError: No module named ‘pip‘
  10. 简单的社区管理系统(Qt)
  11. 【面试】5道JAVA笔试算法题
  12. 自定义控件+ViewPage+Fragment....各种收获
  13. AndroidHttpClient详解
  14. python判断一个数是否为水仙花数_Python判断一个三位数是否为水仙花数的示例
  15. 【Winhex】狂派入门: Winhex的简单使用教程
  16. 产品读书《设计心理学1-4》-设计
  17. TCP拥塞控制——慢开始与拥塞避免AIMD
  18. 观测云产品更新|新增阿里云账户结算方式;新增 DQL 查询查看器;新增基础设施网络模块等
  19. 还有一周就解放了,无心撸码,着急回家
  20. 3D动作绑定_3dmax【动画技巧】骨骼工具快速制作多动作人物动画

热门文章

  1. JPA 2.1类型转换器–保留枚举的更好方法
  2. 编写干净的测试–分而治之
  3. 使用不可序列化的属性序列化Java对象
  4. 鲜为人知的Java 8功能:广义目标类型推断
  5. HOW TO:构造Java类
  6. IntelliJ IDEA for Mac如何配置数据源(Data Source)和用户驱动(User Driver)及数据库控制台_数据源配置(Console)详解
  7. cad图标注释大全_CAD源泉插件快捷键使用教程(全集)
  8. 修改value_Python | 快速修改或命名N个文件夹名称,你会吗?
  9. pytorch load state dict_PyTorch 学习笔记(五):Finetune和各层定制学习率
  10. 【安卓开发 】Android初级开发(十一)Android中多线程