新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 移植SSH到ARM Linux開發(fā)板成功

移植SSH到ARM Linux開發(fā)板成功

作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏

登錄成功后如下圖:

putty登錄

linux主機(jī)登錄

問題總結(jié)1.運(yùn)行sshd時(shí)出現(xiàn)
sshd: /lib/libc.so.6: version `GLIBC_2.7 not found (required by sshd)

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

2.make openssl的時(shí)候,指定的prefix目錄已經(jīng)存在,無法創(chuàng)建。
問題分析:這是因?yàn)樵趐refix目錄的時(shí)候,使用了相對(duì)路徑,如../../install。
解決辦法:openssl需要用指定絕對(duì)路徑來安裝,prefix參數(shù)應(yīng)該如:--prefix=/work/ssh/install/openssl-1.0.0

3.使用arm-2007q3-51-arm-none-linux-gnueabi.bin的make編譯ssh和gdbserver時(shí)出錯(cuò):
/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] 錯(cuò)誤 1

問題解析:

cannot find -lgcc_s,即沒有發(fā)現(xiàn)-libgcc_s.so。

解決辦法:
可能一解決:查找/root/CodeSourcery/Sourcery_G++_Lite/arm-none-linux-gnueabi/libc/lib目錄,如果有l(wèi)ibgcc_s.so.1,做一個(gè)鏈接:ln -s libgcc_s.so.1 libgcc_s.so,重新make,此問題可以解決。如果再出現(xiàn)以下問題:
同理,其他的問題,也在/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從主機(jī)復(fù)制到目標(biāo)板時(shí)出現(xiàn):
cp: omitting directory /etc/boa
等錯(cuò)誤。

問題分析:權(quán)限不夠,或者目標(biāo)板中等/usr/local/etc已經(jīng)有文件。
解決辦法:在cp命令后加-r參數(shù),如:cp -r /etc/* /usr/local/etc/

5.運(yùn)行sshd時(shí)出現(xiàn):
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目錄中沒有相應(yīng)等key。
解決辦法:按照操作步驟,運(yùn)行:
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后復(fù)制到目標(biāo)板/usr/local/etc/目錄下。

6.從nfs復(fù)制key文件到usr/local/etc時(shí)出現(xiàn):
cp: cant open ssh_host_dsa_key: Permission denied

問題分析:目標(biāo)板復(fù)制權(quán)限不夠。
解決辦法:在主機(jī)中修改他們等權(quán)限為777,命令:chmod 777 *。然后再?gòu)?fù)制。

7.Privilege separation user sshd does not exist
//需要在開發(fā)板的系統(tǒng)里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.
//則把目標(biāo)板/usr/local/etc/下的ssh_host_*幾個(gè)文件的權(quán)限改為700。如果出現(xiàn)權(quán)限不夠問題,用su - root進(jìn)入root用戶再改。
命令:#chmod 700 ssh_host_*

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

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

11.以下兩個(gè)函數(shù)沒找到:
/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這兩行函數(shù)。
12.開啟sshd后,沒有找到sftp-server服務(wù)。如DS-5軟件在連接時(shí)就出現(xiàn)以下錯(cuò)誤,雖然還可以用終端,不過不能傳輸文件,還是很不爽的:
Failed to connect SFTP subsystem: Remote host may not have sftp-server installed : java.io.IOException: inputstream is closed
問題分析:明顯的,這是沒有找到sftp子服務(wù)。
問題解決:打開/usr/local/etc/sshd_config,找到這么一行:
Subsystem sftp /usr/libexec/sftp-server
看出問題了吧?配置文件中指明的sftp子服務(wù)并不是我們放的目錄,所以修改為:
Subsystem sftp /usr/local/libexec/sftp-server
然后kill掉sshd,再啟動(dòng)就可以用sftp-server了。

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 移植SSHARMLinux開發(fā)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉