移植SSH到ARM Linux開(kāi)發(fā)板成功
登錄成功后如下圖:
問(wèn)題總結(jié)1.運(yùn)行sshd時(shí)出現(xiàn)
sshd: /lib/libc.so.6: version `GLIBC_2.7 not found (required by sshd)
問(wèn)題分析:說(shuō)明你編譯等時(shí)候指定等glibc和目標(biāo)板所使用的不一致。
解決辦法:配置openssh,即./configure時(shí),使用對(duì)用等--host參數(shù),如--host=arm-linux/arm-none-linux-gnueabi。
2.make openssl的時(shí)候,指定的prefix目錄已經(jīng)存在,無(wú)法創(chuàng)建。
問(wèn)題分析:這是因?yàn)樵趐refix目錄的時(shí)候,使用了相對(duì)路徑,如../../install。
解決辦法:openssl需要用指定絕對(duì)路徑來(lái)安裝,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
問(wèn)題解析:
解決辦法:
可能一解決:查找/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,此問(wèn)題可以解決。如果再出現(xiàn)以下問(wèn)題:
4.用nfs從主機(jī)復(fù)制到目標(biāo)板時(shí)出現(xiàn):
cp: omitting directory /etc/boa
等錯(cuò)誤。
問(wèn)題分析:權(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
問(wèn)題解析:在/usr/local/etc目錄中沒(méi)有相應(yīng)等key。
解決辦法:按照操作步驟,運(yù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
問(wèn)題分析:目標(biāo)板復(fù)制權(quán)限不夠。
解決辦法:在主機(jī)中修改他們等權(quán)限為777,命令:chmod 777 *
7.Privilege separation user sshd does not exist
//需要在開(kāi)發(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)限不夠問(wèn)題,用su - root進(jìn)入root用戶再改。
命令:#chmod 700 ssh_host_*
9.Permission denied (publickey,password,keyboard-interactive).
//打開(kāi)開(kāi)發(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 ***
問(wèn)題分析:沒(méi)有找到zlib。
問(wèn)題解決:重新交叉編譯zlib,再configure即可。
11.以下兩個(gè)函數(shù)沒(méi)找到:
/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
問(wèn)題解決:
打開(kāi)ssh-keygen.c:vi ssh-keygen.c
屏蔽這1410和1493這兩行函數(shù)。
評(píng)論