ssh服務Dropbear移植到Android系統步驟

ssh服務Dropbear移植到Android系統步驟

1.背景

    兩個嵌入式設備之間實現文件傳輸,一個是linux系統,一個是Android系統。
    Linux系統基本都自帶開源組件ssh服務,但是Android端就比較費勁了,需要自己做移植。

2.資料蒐集

 蒐集兩篇參考性比較強的文章,
 https://www.cnblogs.com/moeyard/articles/8727730.html
 https://www.cnblogs.com/libertycode/p/9024398.html
 感謝這兩位前輩的思路總結
 這個網址上面的百度網盤提供的dropbear源碼download下來後我這邊編譯嘗試一直失敗,最後放棄了,只能直接從github上下載源碼開始了自己的交叉編譯

3.開始編譯

1.編譯步驟參考github地址https://github.com/ubiquiti/dropbear-android
感謝這個哥們提供現成的編譯腳本build-dropbear-android.sh,以及詳細說明了移植步驟

2.dropbear版本準備,從github,https://github.com/mkj/dropbear/tags上找到對應的tag版本

3.android-toolchain準備,Android源碼中的prebuild路徑下雖然有現成的編譯工具鏈,但是那個裏面是沒有中間產物,所以不能作爲build-dropbear-android.sh中的CC編譯配置。
  只能自己重新去編譯一個工具鏈~編譯參照https://blog.csdn.net/manshilingkai/article/details/22619855?utm_source=blogxgwz3

4.修改build-dropbear-android.sh,根據自己的編譯環境以及Android的版本,我這邊修改的編譯配置如下,  
   HOST = aarch64-linux-android     
   COMPILER = ${TOOLCHAIN}/bin/aarch64-linux-android-gcc    
   STRIP =  ${TOOLCHAIN}/bin/aarch64-linux-android-strip    
   SYSROOT= ${TOOLCHAIN}/sysroot

5. ./build-dropbear-android.sh 執行腳本後,成功在dropbear-android-2018.76\target\arm下生成要用的dropbear dropbearkey scp 文件

4.開始測試

目前只成功驗證了使用祕鑰的無密碼登錄方式,密碼登錄的方式沒有驗證成功
Android端的操作:
  1.將dropbear dropbearkey scp文件push到Android系統內,並給予執行權限 
  2.dropbearkey 生成一個自己的rsa文件 dropbearkey -t rsa -f /mnt/sdcard/dropbear/dropbear_rsa_host_key
  3.拉起dropbear服務   
    export HOME=/mnt/sdcard/dropbear/
    dropbear  -F -r $HOME/dropbear_rsa_host_key -T $HOME/id_rsa.pub -D  $HOME -p 2022 -A
    參數說明: -F前臺運行  ,-r指定一個自己的祕鑰, -T指定linux端登錄訪問的公鑰, -p指定端口 
    
Linux端的操作:
   使用ssh-keygen -t rsa 指令生成祕鑰和公鑰,公鑰push到Android系統裏面,即dropbear啓動參數裏面的-T $HOME/id_rsa.pub  ,祕鑰用ssh-add 添加到Linux的ssh list中

文件傳輸操作:
   將兩個嵌入式設備連接到同一個局域網內,然後用ifconfig取得Android的ip地址(192.168.1.101),在Linux端使用以下指令
   登錄服務: ssh 192.168.1.101
   Linux發送文件到Android端:scp -P 2022  /home/test/1.text  192.168.0.101:/mnt/sdcard/dropbear/
   Linux下載Android端的文件:scp -P 2022  192.168.0.101:/mnt/sdcard/dropbear/2.txt  /home/test
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章