新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 移植SSH到ARM Linux開發板成功

        移植SSH到ARM Linux開發板成功

        作者: 時間:2016-11-26 來源:網絡 收藏

        登錄成功后如下圖:

        putty登錄

        linux主機登錄

        問題總結1.運行sshd時出現
        sshd: /lib/libc.so.6: version `GLIBC_2.7 not found (required by sshd)

        問題分析:說明你編譯等時候指定等glibc和目標板所使用的不一致。
        解決辦法:配置openssh,即./configure時,使用對用等--host參數,如--host=arm-linux/arm-none-linux-gnueabi。

        2.make openssl的時候,指定的prefix目錄已經存在,無法創建。
        問題分析:這是因為在prefix目錄的時候,使用了相對路徑,如../../install。
        解決辦法:openssl需要用指定絕對路徑來安裝,prefix參數應該如:--prefix=/work/ssh/install/openssl-1.0.0

        3.使用arm-2007q3-51-arm-none-linux-gnueabi.bin的make編譯ssh和gdbserver時出錯:
        /root/CodeSourcery/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lgcc_s
        collect2: ld returned 1 exit status
        make: *** [example] 錯誤 1

        問題解析:

        cannot find -lgcc_s,即沒有發現-libgcc_s.so。

        解決辦法:
        可能一解決:查找/root/CodeSourcery/Sourcery_G++_Lite/arm-none-linux-gnueabi/libc/lib目錄,如果有libgcc_s.so.1,做一個鏈接:ln -s libgcc_s.so.1 libgcc_s.so,重新make,此問題可以解決。如果再出現以下問題:
        同理,其他的問題,也在/arm-none-linux-gnueabi/libc/lib目錄下,
        問題:cannot find /lib/libc.so.6 inside,解決:ln -s libc-2.5.so libc.so.6
        問題:cannot find /lib/ld-linux.so.3inside,解決:ln -s ld-2.5.sold-linux.so.3

        4.用nfs從主機復制到目標板時出現:
        cp: omitting directory /etc/boa
        等錯誤。

        問題分析:權限不夠,或者目標板中等/usr/local/etc已經有文件。
        解決辦法:在cp命令后加-r參數,如:cp -r /etc/* /usr/local/etc/

        5.運行sshd時出現:
        Could not load host key: /usr/local/etc/ssh_host_dsa_key
        Could not load host key: /usr/local/etc/ssh_host_ecdsa_key

        問題解析:在/usr/local/etc目錄中沒有相應等key。
        解決辦法:按照操作步驟,運行:
        ssh-keygen -t dsa -f ssh_host_das_key -N ""
        ssh-keygen -t ecdsa -f ssh_host_ecdas_key -N ""
        生成ssh_host_das_key 和ssh_host_ecdas_key后復制到目標板/usr/local/etc/目錄下。

        6.從nfs復制key文件到usr/local/etc時出現:
        cp: cant open ssh_host_dsa_key: Permission denied

        問題分析:目標板復制權限不夠。
        解決辦法:在主機中修改他們等權限為777,命令:chmod 777 *。然后再復制。

        7.Privilege separation user sshd does not exist
        //需要在開發板的系統里adduser shhd
        //或者在/etc/passwd 中添加下面這一行
        sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

        8.Permissions 0755 for /usr/local/etc/ssh_host_dsa_key are too open.
        //則把目標板/usr/local/etc/下的ssh_host_*幾個文件的權限改為700。如果出現權限不夠問題,用su - root進入root用戶再改。
        命令:#chmod 700 ssh_host_*

        9.Permission denied (publickey,password,keyboard-interactive).
        //打開開發板/usr/local/sshd_config,將PermitRootLogin yes前的注釋“#”號去掉。

        10.configure配置openssh的時候出錯:
        configure: error: *** zlib missing - please install first or check config.log ***
        問題分析:沒有找到zlib。
        問題解決:重新交叉編譯zlib,再configure即可。

        11.以下兩個函數沒找到:
        /home/arm/ssh-omap/source/openssh-5.8p2/ssh-keygen.c:1410: undefined reference to `pkcs11_init
        /home/arm/ssh-omap/source/openssh-5.8p2/ssh-keygen.c:1493: undefined reference to `pkcs11_terminate

        問題解決:
        打開ssh-keygen.c:vi ssh-keygen.c
        屏蔽這1410和1493這兩行函數。
        12.開啟sshd后,沒有找到sftp-server服務。如DS-5軟件在連接時就出現以下錯誤,雖然還可以用終端,不過不能傳輸文件,還是很不爽的:
        Failed to connect SFTP subsystem: Remote host may not have sftp-server installed : java.io.IOException: inputstream is closed
        問題分析:明顯的,這是沒有找到sftp子服務。
        問題解決:打開/usr/local/etc/sshd_config,找到這么一行:
        Subsystem sftp /usr/libexec/sftp-server
        看出問題了吧?配置文件中指明的sftp子服務并不是我們放的目錄,所以修改為:
        Subsystem sftp /usr/local/libexec/sftp-server
        然后kill掉sshd,再啟動就可以用sftp-server了。

        上一頁 1 2 下一頁

        關鍵詞: 移植SSHARMLinux開發

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 肃北| 青铜峡市| 临沭县| 衡东县| 个旧市| 望城县| 元氏县| 治县。| 清水县| 清河县| 长春市| 漳平市| 宣城市| 鄄城县| 泉州市| 句容市| 湖口县| 崇仁县| 朝阳市| 华池县| 旺苍县| 龙海市| 北京市| 曲靖市| 弋阳县| 班玛县| 冕宁县| 合肥市| 武山县| 阳东县| 莎车县| 西峡县| 错那县| 连城县| 河源市| 冀州市| 繁昌县| 颍上县| 栖霞市| 湖南省| 湛江市|