本帖最后由 myzr_soft 于 2019-12-18 10:02 编辑
主机平台: UBUNTU14.04
硬件平台:明远智睿MY-IMX6-EK200-6Q-1G
内核版本 :linux-4.1.15
交叉编译链:arm-poky-linux-gnueabi
文件系统:L4115-core-image-base-myimx6a9.tar.bz2
下载: openssl:https://www.openssl.org/source/openssl-1.0.2s.tar.gz 我下载的版本为: zlib-1.2.11.tar.gz openssl-1.0.2s.tar.gz openssh-5.9p1.tar.gz
$ cd $ mkdir ssh $ cd ssh $ mkdir compressed source install 将源码包移动到/home/myzr/ssh/compressed/: $ mv /home/myzr/openssh-5.9p1.tar.gz /home/myzr/ssh/compressed/ $ mv /home/myzr/openssl-1.0.2s.tar.gz /home/myzr/ssh/compressed/ $ mv /home/myzr/zlib-1.2.11.tar.gz /home/myzr/ssh/compressed/ $ cd /home/myzr/ssh/compressed/ 解压源码到source目录: $ tar xzvf zlib-1.2.11.tar.gz -C ../source/ $ tar xzvf openssl-1.0.2s.tar.gz -C ../source/ $ tar xzvf openssh-5.9p1.tar.gz -C ../source/ source交叉工具链: $ source /home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi zlib编译:
$ cd /home/myzr/ssh/source/zlib-1.2.11/ $ ./configure --prefix=/home/myzr/ssh/install/zlib $ make $ make install openssl编译:
$ cd /home/myzr/ssh/source/openssl-1.0.2s/ $ ./Configure --prefix=/home/myzr/ssh/install/openssl/ os/compiler:arm-poky-linux-gnueabi-gcc $ vi Makefile 将CC= $(CROSS_COMPILE)arm-poky-linux-gnueabi-gcc 修改为CC= arm-poky-linux-gnueabi-gcc $ make $ make install 编译openssh:
$ cd /home/myzr/ssh/source/openssh-5.9p1/ $ ./configure --host=arm-poky-linux-gnueabi --with-libs --with-zlib=/home/myzr/ssh/install/zlib --with-ssl-dir=/home/myzr/ssh/install/openssl --disable-etc-default-login AR=arm-poky-linux-gnueabi-ar $ make
若出现error:arm-poky-linux-gnueabi-ld: unrecognized option '-Wl,-O1' # vi Makefile 将 141-175行中的$(LD) 改为$(CC) 即 $(LD) -o $@ $(SSHOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(SSHLIBS) $(LIBS) 到 $(LD) -o $@ logintest.o $(LDFLAGS) loginrec.o -lopenbsd-compat -lssh $(LIBS) 中所有的$(LD) 改为$(CC) 如:$(LD) -o $@ $(SSHOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(SSHLIBS) $(LIBS) 改为$(CC) -o $@ $(SSHOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(SSHLIBS) $(LIBS) $ make 在开发板上执行: mkdir /usr/local/sbin/ mkdir /usr/local/etc/ mkdir /usr/local/libexec/
将/home/myzr/ssh/source/openssh-5.9p1/下的: scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan 这些文件拷贝到开发板的 /usr/local/bin目录 moduli ssh_config sshd_config 拷贝到开发板的 /usr/local/etc 目录 sftp-server ssh-keysign 拷贝到开发板的 /usr/local/libexec 目录 sshd 拷贝到开发板的 /usr/local/sbin/ 目录 生成Key文件,在虚拟机上操作 : $ 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 "" $ mkdir key $ cp ssh_host_*_key key $ cd key 将key中的文件拷贝到开发板的 /usr/local/etc/ 目录 # vi /etc/passwd 在开发板 /etc/passwd 中添加下面这一行
sshd:x:74:74rivilege-separated SSH:/var/empty/sshd:/sbin/nologin将所有的都复制到开发板相应的目录后,在开发板执行: # chmod 0 /usr/local/etc/ssh_host_* 执行sshd: # /usr/local/sbin/sshd 设置root密码 # passwd root 使用ssh登录(略) |