OpenSSH移植到ARM Linux教程
来源:互联网 发布:查看端口占用命令 编辑:程序博客网 时间:2024/05/25 18:10
1 下载
1、移植openssh需要三个包:openssh、openssl 和 zlib,地址如下:
- zlib官方下载:http://www.zlib.net/
- openssl官方下载:http://www.openssl.org/source
- openssh官网下载:http://www.openssh.com/portable.html
因为它们之间没有版本所谓的版本冲突,所以都下载最新板的即可。本文以zlib-1.2.8.tar.gz、openssl-1.0.1h.tar.gz、openssh-6.6p1.tar.gz这三个版本为例,其他版本过程一样。
2 部署
因为移植过程涉及到三个包,所以先部署好工作目录,有利于移植过程的顺利进行。
$ cd # 切换到用户目录$ mkdir ssh # 新建 ssh 工作目录$ cd ssh # 进入 ssh 目录 $ mkdir zlib.install # 新建 zlib 安装目录,移植过程 zlib 镜像会安装到该目录$ mkdir openssl.install # 新建 openssl 安装目录,移植过程 openssl 镜像会安装到该目录$ export PATH=$PATH:/usr/local/arm-2010q1/bin/ # 配置交叉编译器路径到 PATH 环境变量
3 复制解压
将 zlib-1.2.8.tar.gz、openssl-1.0.1h.tar.gz、openssh-6.6p1.tar.gz 三个源码包复制到ssh目录下,并解压:
$ tar zxvf zlib-1.2.8.tar.gz$ tar zxvf openssl-1.0.1h.tar.gz$ tar zxvf openssh-6.6p1.tar.gz
4 交叉编译 zlib
首先编译zlib成镜像,供最后编译 openssh 用。
$ cd zlib-1.2.8$ prefix=/home/veryarm/ssh/zlib.install CC=arm-none-linux-gnueabi-gcc ./configure$ vi Makefile$ make$ make install
这里第二部配置的时候,prefix前面没有“–”,CC后面是交叉编译器,“./configure”要放在最后。完成后,会在指定目录“/home/veryarm/ssh/zlib.install”下生成镜像文件。
5 交叉编译openssl
编译 openssl 成镜像,也是供最后编译 openssh 用。
$ cd ../openssl-1.0.1h$ ./Configure --prefix=/home/veryarm/ssh/openssl.install os/compiler:arm-none-linux-gnueabi-gcc$ make$ make install
其中./Configure第一个字母是大写的,交叉编译使用os/compiler来指定。
6 交叉编译openssh
$ cd ../openssh-6.6p1$ ./configure --host=arm-none-linux-gnueabi --with-libs --with-zlib=/home/veryarm/ssh/zlib.install --with-ssl-dir=/home/veryarm/ssh/openssl.install --disable-etc-default-login CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar$ make
注意:openssh不需要 make install。
7 目标板准备
确保目标板上有以下目录,若没有,则新建:
/usr/local/bin/usr/local/etc/usr/libexec/var/run/var/empty
- scp、sftp、ssh sshd、ssh-add、ssh-agent、ssh-keygen、ssh-keyscan共8个文件拷贝到目标板/usr/local/bin
- moduli、ssh_config、sshd_config共3个文件拷贝到目标板 /usr/local/etc
- sftp-server、ssh-keysign 共2个文件拷贝到目标板 /usr/libexec
8 生成Key文件
在目标版 /usr/local/etc/ 目录下生成key文件:
$ cd /usr/local/etc/$ 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_keyCould not load host key: /usr/local/etc/ssh_host_ed25519_key
9 目标板用户信息
打开 /etc/passwd 文件,在最后添加下面这一行:
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
如果开发板的 root 用户还没有密码,键入以下命令然输入两次密码来修改,否其他设备无法连:
$ passwd root
10 测试
在目标板上运行:
$ /usr/local/bin/sshd
可以用 ps 命令查看sshd是否在工作。
如果运行的过程中有提示缺少动态连接库,可以在主机上搜索相应文件,拷贝到目标板/lib/目录下面,注意创建软连接!
OK!不出意外的话可以成功,
主机上:
$ ssh root@192.168.1.250(开发板的ip)
文章来自VeryARM:http://www.veryarm.com/892.html,转载请保留。
- OpenSSH移植到ARM Linux教程
- 移植Openssh到ARM Linux目标板
- 移植OpenSSH到arm手记
- 移植OpenSSH到arm手记
- 移植OpenSSH到ARM板
- 移植openssh服务器到ARM处理器上
- Busybox移植到ARM Linux教程
- Qt移植到ARM Linux教程
- vsftpd移植到ARM Linux教程
- SQLite3移植到ARM Linux教程
- Busybox移植到ARM Linux教程
- iptables移植到ARM Linux教程
- Qt移植到ARM Linux教程--转载
- thttpd服务器移植到ARM Linux教程
- Qt移植到ARM Linux教程
- Qt移植到ARM Linux教程
- OpenSSH ARM移植
- gdbserver调试工具移植到ARM Linux教程
- HDU--IMNU集训三:夹角有多大(数学能力+数据分析能力)
- spring配置事务
- 如何强制关闭Ubuntu无响应程序
- TTL/CMOS/RS232/RS485电平介绍
- HDU--IMNU集训三: Palindromes _easy version STL中reverse()用法以及string CString string.h cstring区别
- OpenSSH移植到ARM Linux教程
- 读head first servlet and jsp有感(一)
- 教你在mac上配置adb环境变量!!附上adb无法识别M2的解决办法
- c++类的内存结构(单继承)
- URAL 1167. Bicolored Horses dp
- Linux内核的Oops
- 解决Eclipse鼠标双击自动打开2345网页问题
- java编程中常见的错误信息翻译
- Build Setting Reference