嵌入式爱好者

SSH的移植

2020-5-29 16:36| 发布者: 飞凌-unix| 查看: 669| 评论: 1

类目: I.MX6系列产品  >  Linux     文档编号: 370


简单描述下IMX6X的SSH移植操作

1.1  搭建服务器
首先在虚拟机中完成服务器端的搭建。
1
、安装 SSH
  1
)在虚拟机终端中执行 cd /命令切换到根目录下
  2
)执行 apt-get install yum 命令,再执行 apt-get install ssh 命令
  3
)执行 ufw disable 命令关闭防火墙
  4
)启动服务器执行/etc/init.d/ssh start 命令
1.2  安装开发板客户端
openssh 移植到开发板上就完成了安装 ssh 客户端的工作。
1.2.1  
安装交叉编译器
 
这里用的交叉编译器是 arm-none-linux-gnueabi-gcc MX6Q-C 光盘资料中就有。 拷贝到该虚拟机的/usr/local/arm 目录下面解压。在/etc/profile 文件中的末尾另起一行增
添: export  PATH=/usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/bin:$PATH保存退出,在终端执行 source /etc/profile 命令,这样就不必重启系统而使环境变量生效了。查看安装是否成功在终端中执行 arm-fsl-linux-gnueabi-gcc -v,查看交叉编译器是否安装成功。
1.2.2
下载源码包
下载 openssh-4.6p1.tar.gz openssl-0.9.8k.tar.gz zlib-1.2.3.tar.gz 这三个源码包, ssh服务需要依赖 zlib ssl 库。
注意: 建议使用上面提到的版本, 高版本有些文件更新可能出现安装问题。
1.2.3
交叉编译
建立目录结构/EmbSSH
compressed
用于存放源码包,
install
软件安装目录,
source
源码包解压目录。
openssh-4.6p1.tar.gzopenssl-0.9.8k.tar.gzzlib-1.2.3.tar.gz 三个文件放 compressed目录下

交叉编译 zlib
cd /EmbSSH/compressed/
tar xvf zlib-1.2.3.tar.gz -C ../source
cd ../source/zlib-1.2.3
./configure --prefix=/EmbSSH/install/zlib-1.2.3
修改 Makefile 中的如下信息
CC=arm-none-linux-gnueabi-gcc

AR= arm-none-linux-gnueabi-ar rc
CPP = arm-none-linux-gnueabi-gcc -E
LDSHARED= arm-none-linux-gnueabi-gcc
执行
make
make install


交叉编译 openssl
cd /EmbSSH/compressed/
tar zxvf openssl-0.9.8e.tar.gz -C ../source
cd ../source/openssl-0.9.8e
./Configure --prefix=/EmbSSH/install/openssl-0.9.8e
os/compiler: arm-none-linux-gnueabi-gcc
make
make install


交叉编译 openssh
cd /EmbSSH/compressed
tar zxvf openssh-4.6p1.tar.gz C ../source
cd ../source/openssh-4.6p1
./configure --host=arm-linux --with-libs --with-zlib=/EmbSSH/install/zlib-1.2.3
--with-ssl-dir=/EmbSSH/install/openssl-0.9.8e
--disable-etc-default-login
CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar
打印出如下信息:
OpenSSH has been configured with the following options:
User binaries: /usr/local/bin
........
Linker flags: -L/EmbSSH/install/openssl-0.9.8e/lib
-L/EmbSSH/install/zlib-1.2.3/lib
Libraries: -lresolv -lcrypto -lutil -lz -lnsl -lcrypt
执行 make 不需要执行 make install
至此需要编译的文件已经完成。
1.3 安装 sshd 到开发板
在虚拟机 EmbSSH/source/openssh-4.6p1 下建立文件夹 bin,etc,libexec,sbin
mkdir -p EmbSSH/source/openssh-4.6p1/{bin,etc,libexec,sbin}
生成 Key 文件
cd /EmbSSH/source/openssh-4.6p1
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 ""
/EmbSSH/source/openssh-4.6p1 目录中编译好的目标文件 scp sftp ssh ssh-add
ssh-agent ssh-keygen ssh-keyscan
复制到 bin目录中;moduli ssh_config sshd_config
以及刚刚生成的 Key文件复制到 etc目录下;sftp-server ssh-keysign复制 libexec目录;sshd 复制到 sbin 目录;

cp scp sftp ssh ssh-add ssh-agent
ssh-keygen ssh-keyscan ../../source/openssh-4.6p1/bin/
cp moduli ssh_config sshd_config ../../ source/openssh-4.6p1/etc
cp sftp-server ssh-keysign ../../ source/openssh-4.6p1/libexec/
cp sshd ../../ source/openssh-4.6p1/sbin
cp ssh_host_*_key ../../ source/openssh-4.6p1/etc

将放置好的镜像打包
cd /EmbSSH/ source/openssh-4.6p1/
tar zcvf openssh.tar.bz2 ./*
把压缩包 openssh.tar.bz2 通过 U 盘复制到开发板,并解压到开发板的 usr/local
tar xvf openssh.tar.bz2 -C /usr/local
另外在板子上新建一个空文件夹:
mkdir /var/empty
启动 ssh 服务
/usr/local/sbin/sshd
可能出现如下报错信息
root@freescale /$ /usr/local/sbin/sshd
Could not load host key: /usr/local/etc/ssh_host_key
Disabling protocol version 1. Could not load host key
此时重新生成 hostkey 文件并放置到/usr/local/etc
ssh-keygen -t rsa1 -f ssh_host_key -N ""
cp ssh_host_key ./usr/local/etc/
cp ssh_host_key.pub ./usr/local/etc/
再重新启动 ssh 服务。
/usr/local/sbin/sshd
此时就可以使用 ssh 客户端连接开发板了


已解决

未解决

只是看看
发表评论

最新评论

引用 yinyehua 2021-5-19 15:23
FETMX8MQ-C板子上实现的是一个轻量级sshd服务器么, 可以ssh登录, 没有sftp功能?     依照此贴可移植进去 ...

查看全部评论(1)

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-23 08:07

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部