最近出於專案需要,不再使用telnet協議來遠端操控嵌入式linux開發機,而需要使用有一定安全要求的ssh協議,做記錄以備將來回顧。linux系統中常用的ssh軟體是openssh,由於openssh略顯龐大,後選擇輕量級的dropbear替換openssh。2016-8-16
dropbear實現完整的ssh客戶端和伺服器版本2協議,不支援ssh版本1協議,以節省空間和資源,並避免在ssh版本1中出現的固有的安全漏洞,而且也支援scp。
1.宿主機操作:
交叉編譯zlib。進入zlib解壓後的目錄,執行:
~/zlib # mkdir /usr/local/zlib/
~/zlib # ./configure --prefix=/usr/local/zlib
~/zlib # vim makefile
cc=arm-fsl-linux-gnueabi-cc
ar=arm-fsl-linux-gnueabi-ar
ranlib=arm-fsl-linux-gnueabi-ranlib
cpp=arm-fsl-linux-gnueabi-cpp
ldshared=arm-fsl-linux-gnueabi-cc -shared -wl,-soname,libz.so.1,--version-script,zlib.map
~/zlib # make
~/zlib # make install
交叉編譯dropbear。進入dropbear解壓後的目錄,執行:(配置為自己的交叉編譯工具)
~/dropbear # mkdir /usr/local/dropbear/
~/dropbear # ./configure --prefix=/usr/local/dropbear --with-zlib=/usr/local/zlib/ cc=arm-fsl-linux-gnueabi-gcc --host=arm
~/dropbear # make programs="dropbear dbclient dropbearkey dropbearconvert scp"
~/dropbear # make programs="dropbear dbclient dropbearkey dropbearconvert scp" install
~/dropbear # make scp
~/dropbear # cp scp /usr/local/dropbear/bin/
2.將/usr/local/dropbear/bin/和/usr/local/dropbear/sbin/裡面的可執行程式,都複製到linux開發機的/usr/sbin/目錄下,不要把bin、sbin目錄複製到/usr/sbin/裡面了。然後在arm板的串列埠終端上執行下面命令生成金鑰:
~ # cd /etc
~/etc # mkdir dropbear
~/etc # cd dropbear
~/etc/dropbear # dropbearkey -t rsa -f dropbear_rsa_host_key
~/etc/dropbear # dropbearkey -t dss -f dropbear_dss_host_key
/usr/sbin/dropbear
3.另外,可能還需要新建賬戶和設定密碼,有問題解決問題即可。
修改root或使用者密碼
[root@friendlyarm /]# passwd root
changing password for root
new password:
retype password:
password for root changed by root
或者:root狀態下在板上輸入命令新增使用者myland和設定密碼
[root@friendlyarm /]# adduser myland
changing password for myland
new password:
retype password:
password for myland changed by root
libcurl移植到嵌入式ARM
curl 庫的主要功能是用不同的協議連線不同的伺服器,也就是相當封裝了的 socket 的協議庫,libcurl 當前支援 等常用協議,libcurl 也支援https 證書授權,是網路程式開發的一把利器。unzip curl curl 7 50 0.zip 也可以把目錄名字修改為libcurl m...
ARM嵌入式Linux移植體驗裝置驅動(續1)
裝置驅動程式是作業系統核心和機器硬體之間的介面,它為應用程式遮蔽硬體的細節,一般來說,linux的設 備驅動程式需要完成如下功能 裝置初始化 釋放 提供各類裝置服務 負責核心和裝置之間的資料交換 檢測和處理裝置工作過程中出現的錯誤。linux下的裝置驅動程式被組織為一組完成不同任務的函式的集合,通過...
嵌入式移植
深度學習嵌入式移植 1 移植原因 演算法必須在優化後的硬體上執行,因為學習成千上萬的資料可能需要長達幾周的時間。移動端其實不需要做tranning,只需要進行propagating,所以問題集中在移動端能不能存放並執行更大的network。2 常見的移動端開發裝置 nvidiajetsontx1 t...