SSH 成功移植到 ARM 平台

你的本机上建立好了arm-linux交叉编译环境 #arm-linux-gcc -v

开发板已与路由器相连,并进行了必要的网络配置,可以ping通本机

1. 下载需要的源码,直接google最新的版本吧

mkdir -p ~/arm/fs ;mkdir -p ~/arm/source

下载zlib: zlib-1.2.3.tar.gz

下载ssl : openssl-0.9.8d.tar.gz

下载ssh : openssh-4.6p1.tar.gz

2. 编译:

cd ~/arm/source

(1) 编译zlib :

tar zxvf zlib-1.2.3.tar.gz -C .

cd zlib-1.2.3/

./configure --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/ --shared

修改Makefile :

所有gcc改为arm-linux-gcc,ar改为arm-linux-ar

开始编译: make;

make install

(2) 编译openssl:

tar zxvf openssl- 0. 9. 8d.tar.gz

./Configure --prefix=/opt/FriendlyARM/linux/ssh/openssl-1.0.1e/install compiler:arm-linux-gcc

make

make install

(3) 编译openssh:

tar zxvf openssh-4.6p1.tar.gz

cd openssh-4.6p1/

./configure -host=arm-linux -with-libs -with-zlib -with-ssl-dir=/opt/FriendlyARM/linux/ssh/openssl-1.0.1e/install -disable-etc-default-login CC=arm-linux-gcc AR=arm-linux-ar

make

##不要make install

3. 安装

(1) 将 openssh-4.6p1目录下的 sshd 拷贝到 目标板的/usr/sbin目录下

(2) 再复制 scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan 到目标板/usr/local/bin 目录下

复制 sftp-server ssh-keysign 到/usr/local/libexec

(3) 在目标板下:

mkdir -p /usr/local/etc/

然后将openssh下的sshd_config , ssh_config 拷贝到该目录下

mkdir -p /var/run; mkdir -p /var/empty/sshd

chmod 755 /var/empty

(4)在主机上:

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_* 4个文件copy到目标板的 /usr/local/etc/目录下

(5) 修改目标板passwd文件。
在/etc/passwd 中添加下面这一行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

(6) 测试

在目标板上执行passwd,输入密码

目标板启动sshd: # /usr/sbin/sshd

用SecureCRT新建SSH连接


你可能感兴趣的:(嵌入式)