向linux嵌入式ARM板移植dropbear

2021-08-21 23:22:21 字數 2205 閱讀 9548

最近出於專案需要,不再使用telnet協議來遠端操控嵌入式linux開發機,而需要使用有一定安全要求的ssh協議,做記錄以備將來回顧。

2016-8-16

linux系統中常用的ssh軟體是openssh,由於openssh略顯龐大,後選擇輕量級的dropbear替換openssh。

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...