基于 Dropbear & Zlib 搭建轻量级的ssh server
【目的】
移植dropbear & zlib 在AM335X开发板上搭建轻量级的ssh server
【环境】
1、 Ubuntu 16.04发行版
2、 MC183平台
3、 交叉编译器arm-linux-gnueabihf-gcc-4.7.3
【步骤】
1、下载zlib-1.2.8.tar.gz dropbear-2015.67.tar.bz2源码。
2. 交叉编译zlib。
解压zlib-1.2.8.tar.gz
tar zvxf zlib-1.2.8.tar.gz
cd zlib-1.2.8
配置:
./configure --prefix=../../zlib/install
修该Makefile用于交叉编译,如下加粗字体为改动部分:
change Makefile
CROSS=arm-linux-gnueabihf-
CC=$(CROSS)gcc
CFLAGS=-O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN
#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
#CFLAGS=-g -DDEBUG
#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
# -Wstrict-prototypes -Wmissing-prototypes
SFLAGS=-O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN
LDFLAGS=
TEST_LDFLAGS=-L. libz.a
LDSHARED=$(CC) -shared -Wl,-soname,libz.so.1,--version-script,zlib.map
CPP=$(CC) -E
STATICLIB=libz.a
SHAREDLIB=libz.so
SHAREDLIBV=libz.so.1.2.8
SHAREDLIBM=libz.so.1
LIBS=$(STATICLIB) $(SHAREDLIBV)
AR=$(CROSS)ar
ARFLAGS=rc
RANLIB=$(CROSS)ranlib
LDCONFIG=ldconfig
LDSHAREDLIBC=-lc
TAR=tar
SHELL=/bin/sh
EXE=
#prefix =/usr/local
prefix=../../zlib/install
编译:
make
安装到prefix目录当中:
make install
用tree 显示安装目录如下所示:
install
├── include
│ ├── zconf.h
│ └── zlib.h
├── lib
│ ├── libz.a
│ ├── libz.so -> libz.so.1.2.8
│ ├── libz.so.1 -> libz.so.1.2.8
│ ├── libz.so.1.2.8
│ └── pkgconfig
│ └── zlib.pc
└── share
└── man
└── man3
└── zlib.3
3. 交叉编译dropbear。
解压dropbear-2015.67.tar.bz2
tar jvxf dropbear-2015.67.tar.bz2
cd dropbear-2015.67
配置:
./configure --prefix=../../dropbear/install --with-zlib=../../zlib/install/ CC=arm-linux-gnueabihf-gcc --host=arm-linux
会报如下错误:
configure: error: expected an absolute directory name for --prefix: ../../dropbear/install
因为—prefix需要一个绝对的路径,所以修该成如下进行配置
./configure --prefix=/home/vmuser/sdc/remote_svn/iotx-am335x/MC-183/package/dropbear/install --with-zlib=../../zlib/install/ CC=arm-linux-gnueabihf-gcc --host=arm-linux
默认编译安装:
default compile:
make
make install
自定义编译安装:
counster compile:
make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"
make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install
用tree 显示安装目录如下所示:
install/
├── bin
│ ├── dbclient
│ ├── dropbearconvert
│ ├── dropbearkey
│ └── scp
├── sbin
│ └── dropbear
└── share
└── man
├── man1
│ ├── dbclient.1
│ ├── dropbearconvert.1
│ └── dropbearkey.1
└── man8
└── dropbear.8
4. 测试:
# download dbclient
wget http://192.168.3.88/dropbear/install/bin/dbclient -O /bin/dbclient && chmod +x /bin/dbclient
# download scp
wget http://192.168.3.88/dropbear/install/bin/scp -O /bin/scp && chmod +x /bin/scp
# download dropbearkey
wget http://192.168.3.88/dropbear/install/bin/dropbearkey -O /bin/dropbearkey && chmod +x /bin/dropbearkey
# download dropbearconvert
wget http://192.168.3.88/dropbear/install/bin/dropbearconvert -O /bin/dropbearconvert && chmod +x /bin/dropbearconvert
# download dropbear
wget http://192.168.3.88/dropbear/install/sbin/dropbear -O /bin/dropbear && chmod +x /bin/dropbear
# download libz so
wget http://192.168.3.88/zlib/install/lib/libz.so.1.2.8 -O /lib/libz.so.1.2.8 && chmod +x /lib/libz.so.1.2.8
# create soft ln
ln -s /lib/libz.so.1.2.8 /lib/libz.so
ln -s /lib/libz.so.1.2.8 /lib/libz.so.1
# mkdir /etc/dropbear
mkdir -p /etc/dropbear
cd /etc/dropbear
# generate dropbear_dss_host_key
root@am335x:/etc/dropbear# dropbearkey -t dss -f dropbear_dss_host_key
Generating key, this may take a while...
Public key portion is:
ssh-dss AAAAB3NzaC1kc3MAAACBAP3WPpjrRpLNaAZuABg4GYaHurc50gAmesgL/MFxj9aOfZ3n4GCmqD+fEfEkMok8KIdblyo7B/VX8ycM85EARMzQT7Y7t9KZRRIVTHNMG3NgalczaQOGYCdQs/QVNaMzKOCvt15rQQFdYNGmkoscNYROoKVau/16KJpC6QD70bAdAAAAFQDsjhDS8hI1Ilxo/t4UDl5q2VDnywAAAIEAjlslkIGvLQhxa1lm+3BL6PnXc9dIizfCMLtp+eS178fJdoLceLhC+FrTwVyaLAUrvElvqgkYkGtx/DtNmw3xyE2d6Fu4uFT1FuyPBJxxYAnJc6odKG64mZXSiPz5hkalcPmi/oDE4Y7TT6GwEorTQ5CyS7jZc/vgOOry5rG+gcUAAACBAP1Vvx4DsCVF0KEgx04j1sRzGp9MjkXd+S4sA1hOXUJ5VVmtqMYn5XBJTCfsNBCMsVAWAIP3usvHlLuXTD/nC23fUw2gPpBEBiCQCThbingyqT7wQ4ZQFlO8yHRr4peBxyUK2PFyVDPGohl5cSO+XaaWVUe33Cg/Rk5xl1Q4b5gbroot@am335x Fingerprint: md5 09:e2:6c:93:39:d0:08:1e:97:64:74:c8:d6:78:97:6e
# generate dropbear_rsa_host_key
root@am335x:/etc/dropbear# dropbearkey -t rsa -f dropbear_rsa_host_key
Generating key, this may take a while...
Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5txR31wx+AXiy4nOanuocphD7VYTQa5L1yLmANQVZnZh2itRnuMrsAfSBOkKIOo2UwcK9iyJCWXFmcoLe6acXIeX/mAP4OzgOqi1gLJoBw/y3vmeIzJJP1Qn96iVhZqL1NLjqj863+LNi20WuvYzdKbd13dbTGnE7auDynKLlE+LudSg2MjDLhJ7VZ4tGagoxY4HkRfGgKha2+K7CeCvby29St5QOt8HWjbOBM6MaNqX09GH7W1hpzti39xpZwz8YakPWMgYd6/elBFtVx0tZhg/80xq1HHG5OtDM6Fzo+wtZODb5r2gEBvYPJ+DaX06x9f6WOaWXtKnV5IEu3GF/ root@am335x
Fingerprint: md5 09:0c:bc:c0:c9:85:26:c1:aa:00:4a:0f:7e:23:33:1d
# restart dropbear
killall -9 dropbear
dropbear -p 22 &
基于 Dropbear & Zlib 搭建轻量级的ssh server的更多相关文章
- VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群
VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群 下一篇:VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群-整合Zookeeper和Hbase 近期 ...
- 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!
写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...
- 基于 Hexo 从零开始搭建个人博客(二)
阅读本篇前,请先配置好相应的环境,请仔细阅读教程 基于 Hexo 从零开始搭建个人博客(一). 原文链接:基于 Hexo 从零开始搭建个人博客(二) 前言 博客搭建过程遇到任何问题,优先在本页面搜索, ...
- Ubuntu配置ssh server
SSH-Server配置指南 一.SSH简介 SSH (Secure Shell)是一个应用程序中提供安全通信的协议,通过SSH协议可以安全地访问服务器,因为SSH 具有成熟的公钥加密体系,在数据进行 ...
- Linux下设置SSH Server设置时间链接限制
OpenSSH基于安全的理由,如果用户连线到SSH Server后闲置一段时间,SSH Server会在超过特定时间后自动终止SSH连线.本人习惯长时间连接,需要做如下修改: 1.打开ssh配置文件: ...
- 基于VMware Workstation搭建开发服务器
基于VMware Workstation搭建开发服务器 文章为本人原创,转载请联系作者并注明出处.晓松 源URL: https://www.jianshu.com/p/e62ab7de0124 我 ...
- CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点 以下 ...
- Mac上基于hexo+GitHub搭建个人博客(一)
原文地址: http://fanjiajia.cn/2018/11/23/Mac%E4%B8%8A%E5%9F%BA%E4%BA%8Ehexo+GitHub%E6%90%AD%E5%BB%BA%E4% ...
- OpenMediaVault 搭建git,ssh无法连接问题
/************************************************************************* * OpenMediaVault 搭建git,ss ...
随机推荐
- npm ERR! missing script: dev 报错解决
npm run dev 报错:missing script:dev 今天在运行Vue项目时,在运行npm run dev时报错如下图: 打开package.js文件夹,发现文件夹里的scripts有 ...
- Android 通过 JNI 访问 Java 字段和方法调用
在前面的两篇文章中,介绍了 Android 通过 JNI 进行基础类型.字符串和数组的相关操作,并描述了 Java 和 Native 在类型和签名之间的转换关系. 有了之前那些基础,就可以实现 Jav ...
- Unity中利用光线投射实现摄像机拉近追踪对象
项目中要求实现摄像机跟踪人物移动,并且可以水平360°,上下接近180°的自由旋转.这些操作网上已近有很多版本的实现,在此不再赘述.我在此想说的是,当摄像机移动到场景边界,或者触碰到场景中的障碍物的时 ...
- 数据结构(C语言版)-第2章 线性表
#define MAXSIZE 100 //最大长度 typedef struct { ElemType *elem; //指向数据元素的基地址 int length; //线性表的当前长度 }SqL ...
- LeetCode--496--下一个更大元素I(java)
给定两个没有重复元素的数组 nums1和 nums2 ,其中nums1 是 nums2 的子集.找到 nums1 中每个元素在 nums2 中的下一个比其大的值. nums1 中数字 x 的下一个更大 ...
- LeetCode--387--字符串中的第一个唯一字符
问题描述: 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引.如果不存在,则返回 -1. 案例: s = "leetcode" 返回 0. s = "lovel ...
- LeetCode--367--有效的完全平方数
问题描述: 给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False. 说明:不要使用任何内置的库函数,如 sqrt. 示例 1: 输入:16 输 ...
- p2693 Combination Lock
深搜,注意模n.用set去重. #include <iostream> #include <cstdio> #include <cmath> #include &l ...
- 关于OkHttp同步请求的小错误
今天进行OkHttp的同步请求 写的都是按照官方的去写的 但是返回的东西却不是我想要的 原因是我直接拿到Response后,直接Response.toString,想要拿到返回值 但是这样是错误的,正 ...
- [LintCode] Number of Islands(岛屿个数)
描述 给一个01矩阵,求不同的岛屿的个数. 0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右为相邻. 样例 在矩阵: [ [1, 1, 0, 0, 0], [0, 1, ...