mini2440 openssh 移植
1. 下載需要的源碼,直接google最新的版本吧 mkdir -p ~/arm/fs ;mkdir -p ~/arm/source
下載zlib: zlib-1.2.3.tar.gz 下載ssl : openssl-0.9.8d.tar.gz 下載ssh : openssh-4.6p1.tar.gz
2. 編譯: cd ~/arm/source
(1) 編譯zlib : tar zxvf zlib-1.2.3.tar.gz -C . cd zlib-1.2.3/ ./configure –prefix=/home/itlanger/arm/fs/zlib-1.2.3 修改Makefile :
CC=gcc 改為:
CROSS=/usr/local/arm/3.4.1/bin/arm-linux -
CC= $ ( CROSS) gcc
LDSHARED= gcc 改為: LDSHARED= $ ( CROSS) gcc
CPP= gcc - E 改為 : CPP= $ ( CROSS) gcc - E
AR= ar rc 改為: AR= $ ( CROSS) ar rc 開始編譯: make; make install
(2) 編譯openssl: tar zxvf openssl- 0. 9. 8d.tar.gz
. / configure - - prefix= / home/itlanger / arm/fs/ openssl- 0. 9. 8d os/ compiler: / usr/ local/ arm/ 3. 4. 1/ bin/ arm- linux- gcc make make install
(3) 編譯openssh: tar zxvf openssh-4.6p1.tar.gz cd openssh-4.6p1/ ./configure –host=arm-linux –with-libs –with-zlib=/home/itlanger/arm/fs/zlib-1.2.3 –with-ssl-dir=/home/itlanger/arm/fs/openssl-0.9.8d –disable-etc-default-login CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc AR=/usr/local/arm/3.4.1/bin/arm-linux-ar make ##不要make install
3. 安裝
(1) 將 openssh-4.6p1目錄下的 sshd 拷貝到目標板的/usr/sbin目錄下 (2) 再copy scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan 到目標板/usr/local/bin 目錄下 copy sftp-server ssh-keysign 到/usr/local/libexec
(3) 在目標板下: mkdir -p /usr/local/etc/ 然后將openssh下的sshd_config , ssh_config 拷貝到該目錄下
mkdir -p /var/run; mkdir -p /var/empty/sshd chmod 755 /var/empty (4)在主機上:
ssh-keygen -t rsa1 -f ssh_host_key -N ""
ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
ssh-keygen -t dsa -f ssh_host_dsa_key -N “” 將生存的 ssh_host_* 4個文件copy到目標板的 /usr/local/etc/目錄下 (5) 添加用戶: 將主機上 /etc/ 目下的 passwd, shadow, group 三個文件copy到目標板的 /etc 目錄下,同時記得將passwd的最后 /bin/bash 該為 /bin/sh //這一步以后,開發(fā)板上的用戶結構與你本機的結構就是一樣的了,所以在cp之前先把你自己的root密碼設好 //#passwd設置root密碼,然后在把上面3個文件cp到開發(fā)板/etc下
4.測試
目標板啟動sshd: # /usr/sbin/sshd
//在開發(fā)板上運行這個命令的時候可能會提示 //Privilege separation user sshd does not exist //需要在開發(fā)板的系統(tǒng)里adduser shhd//或者在 /etc/passwd 中添加下面這一行
// 錯放usr/bin出現 sshd re-exec requires execution with an absolute path
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
主機: $ ssh root@192.168.0.34(開發(fā)板的ip) //root密碼就是你本機上root的密碼
ps: 紅色的那些代表讓arm做ssh server時必須的
Privilege separation user sshd does not exist 解決方法
方法一(推薦): 修改/etc/passwd文件,在其中加入 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 或者 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 我加入的是: sshd:x:109:65534::/var/run/sshd:/usr/sbin/nologin 參考 http://www./comments/sun/ssh_installation.shtml/37.shtml http://www./modules/newbb/viewtopic.php?topic_id=966
方法二(不推薦): 修改/etc/ssh/sshd_config文件 將其中 UsePrivilegeSeparation yes 修改為 UsePrivilegeSeparation no 雖然能解決問題,但是降低了ssh的安全級別。
|