S3C2440开发板移植OpenSSH教程

1. OpenSSH简介

	OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制,
	或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、
	rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端台程序和客户
	端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。

2. 下载相应的文件

	移植OpenSSH需要三个文件,分别是zlib,openssl,openssh。可以到相应官网下载。
	zlib官网:http://www.zlib.net/
	openssl官网:https://www.openssl.org/
	openssh官网:http://www.openssh.com/
	本文以zlib-1.2.11.tar.gz,openssl-1.0.1d.tar.gz,openssh-6.2p2.tar.gz为例。

3. 交叉编译

	用FTP工具将所下载文件上传至服务器并解压。

在这里插入图片描述
## 3.1 交叉编译zlib

	依次执行如下指令交叉编译zlib
	cd zlib-1.2.11/
	prefix=$PWD/tmp CC=arm-linux-gcc ./configure	//指定安装目录,交叉编译工具链
	make
	make install

	把交叉编译出来的头文件拷贝至交叉编译工具链:
	sudo cp tmp/include/* -rf /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
	把交叉编译出来的库文件拷贝至交叉编译工具链:
	sudo cp tmp/lib/*so* -rf -d /work/tools/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib
	把编译出来的库文件拷贝至NFS文件系统的lib目录:
	sudo cp tmp/lib/*so* -rf -d /work/nfs_root/fs_mini_1.20/lib	
	

## 3.2 交叉编译openssl

	依次执行如下指令交叉编译openssl
	cd openssl-1.0.1d/
	./config shared no-asm --prefix=$PWD/tmp
	修改Makefile:
	CC= arm-linux-gcc
	AR= arm-linux-ar $(ARFLAGS) r
	RANLIB= arm-linux-ranlib
	NM= arm-linux-nm
	MAKEDEPPROG= arm-linux-gcc
	删除 CFLAGS中的 -m64
	CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -Wall
	make
	make install
	把交叉编译出来的头文件拷贝至交叉编译工具链:
	sudo cp tmp/include/* -rf /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
	把交叉编译出来的库文件拷贝至交叉编译工具链:
	sudo cp tmp/lib/*so* -rf -d /work/tools/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib
	把编译出来的库文件拷贝至NFS文件系统的lib目录:
	sudo cp tmp/lib/*so* -rf -d /work/nfs_root/fs_mini_1.20/lib	

## 3.3 交叉编译openssh

	cd openssh-6.2p2/
	./configure --host=arm-linux --disable-etc-default-login CC=arm-linux-gcc AR=arm-linux-ar
	make

4. 测试准备

## 4.1 文件拷贝

	在目标开发板创建以下目录
	/usr/local/bin
	/usr/local/etc
	/usr/libexec
	/var/run
	/var/empty
	将 openssh-6.2p2下在服务器上交叉编译生成的文件拷贝至目标开发板系统
	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


## 4.2 密钥生成

 	在目标开发板执行如下指令
 	cd /usr/local/bin
	./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 ""
	在/usr/local/etc目录下即生成相应的密钥

在这里插入图片描述

## 4.3 目标开发板用户信息创建
	vi /etc/passwd
	键入如下内容。首次使用目标开发板root用户没有设置密码,需执行passwd root指令设置密码。

在这里插入图片描述

5. openssh测试

在目标开发板上执行: /usr/local/bin/sshd,执行ps指令查看sshd是否在后台运行。若没有,可能是缺少某些动态库文件。
在PC主机上通过MobaXterm设置SSH登录方式,并登录,出现如下画面登录成功,至此,OpenSSH移植成功。

在这里插入图片描述

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值