本文以飛凌嵌入式OKMX6Q/DL-C開發(fā)板(https://www.forlinx.com/product/imx6q-30.html)為基礎(chǔ)講解,操作系統(tǒng)為Linux3.0.35,其它品牌產(chǎn)品請參考使用,本文主要介紹了iMX6Q開發(fā)板如何安裝SSH,本文章主要是記錄日?蛻艚(jīng)常問到的一些問題,為客戶提供一些解決思路,希望可以協(xié)助客戶加速產(chǎn)品的研發(fā)速度,由于水平有限,在服務(wù)過程中所提供的任何資料和信息,都僅供參考。 一、搭建服務(wù)器 首先在虛擬機中完成服務(wù)器端的搭建。 安裝SSH步驟如下: 1)在虛擬機終端中執(zhí)行 cd /命令切換到根目錄下 2)執(zhí)行 apt-get install yum 命令,再執(zhí)行 apt-get install ssh 命令 3)執(zhí)行 ufw disable 命令關(guān)閉防火墻 4)啟動服務(wù)器執(zhí)行/etc/init.d/ssh start 命令 二、安裝開發(fā)板客戶端將openssh 移植到iMX6Q開發(fā)板上就完成了安裝 SSH 客戶端的工作。 1、安裝交叉編譯器 這里用的交叉編譯器是arm-none-linux-gnueabi-gcc,可從iMX6Q 用戶資料中獲取?截惖皆撎摂M機的/usr/local/arm 目錄下面解壓。在/etc/profile 文件中的末尾另起一行增。 添加 export PATH=/usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/bin ![]() 保存退出,在終端執(zhí)行 source /etc/profile 命令,這樣就不必重啟系統(tǒng)而使環(huán)境變量生效了。 查看安裝是否成功在終端中執(zhí)行 arm-fsl-linux-gnueabi-gcc –v 查看交叉編譯器是否安裝成功。 2、下載源碼包 下載openssh-4.6p1.tar.gz、 openssl-0.9.8k.tar.gz 和 zlib-1.2.3.tar.gz 這三個源碼包, ssh服務(wù)需要依賴 zlib 和 ssl 庫。 注意: 建議使用上面提到的版本,高版本有些文件更新可能出現(xiàn)安裝問題。 3 、交叉編譯 建立目錄結(jié)構(gòu)/EmbSSH compressed 用于存放源碼包, install 軟件安裝目錄, source 源碼包解壓目錄。 將openssh-4.6p1.tar.gz、openssl-0.9.8k.tar.gz、zlib-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 執(zhí)行 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 執(zhí)行make不需要執(zhí)行make install 至此需要編譯的文件已經(jīng)完成。 三、安裝SSH 到iMX6開發(fā)板在虛擬機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復(fù)制到 bin目錄中;moduli ssh_config sshd_config 以及剛剛生成的Key文件復(fù)制到 etc目錄下;sftp-server ssh-keysign復(fù)制 libexec目錄;sshd 復(fù)制到 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 盤復(fù)制到iMX6Q開發(fā)板,并解壓到iMX6Q開發(fā)板的 usr/local 下 tar xvf openssh.tar.bz2 -C /usr/local 另外在板子上新建一個空文件夾: mkdir /var/empty 啟動ssh 服務(wù) /usr/local/sbin/sshd 可能出現(xiàn)如下報錯信息 root@freescale /$ /usr/local/sbin/sshd Could not load host key: /usr/local/etc/ssh_host_dsa_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_dsa_key ./usr/local/etc/ cp ssh_host_dsa_key.pub ./usr/local/etc/ 再重新啟動ssh 服務(wù)。 /usr/local/sbin/sshd 此時就可以使用ssh 客戶端連接iMX6Q開發(fā)板了 關(guān)注官網(wǎng),了解更多詳情https://www.forlinx.com/ |
歡迎光臨 電子工程網(wǎng) (http://m.qingdxww.cn/) | Powered by Discuz! X3.4 |