OpenSSH移植到ARM Platform——特指啟動SSHD服務

來源:互聯網
上載者:User

OpenSSH移植到ARM Platform——特指啟動SSHD服務 源碼包 www.2cto.com  名稱版本包OpenSSH6.0p1openssh-6.0p1.tar.gzOpenSSL1.0.1copenssl-1.0.1c.tar.gzZLIB1.2.3zlib-1.2.3.tar.gz移植準備注意:筆者使用的交叉編譯工具鏈為arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2010.09-50) 4.5.1。  www.2cto.com  在主機中建立一個openssh目錄,存放下載的源檔案壓縮包,並在該檔案夾下解壓。# mkdir –p openssh# tar -xz –f openssh-6.0p1.tar.gz  --解壓OpenSSH源碼包# tar -xz -f zlib-1.2.3.tar.gz       --解壓ZLIB源碼包# tar –xz -f openssl-1.0.1c.tar.gz   --解碼OpenSSL源碼包在openssh目錄下建立install目錄,用於存放組建檔案和安裝目錄。# mkdir –p install交叉編譯步驟ZLIB(1)編譯zlib# cd (全路徑名)/openssh/zlib-1.2.3# ./configure --prefix=(全路徑名)/openssh/install/zlib-1.2.3修改zlib-1.2.3目錄下Makefile:? 在第一行添加如內容:CROSS=arm-none-linux-gnueabi-? CC=gcc 改為: 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經過編譯和安裝之後,編譯產生的ZLIB庫和標頭檔就安裝在了“(全路徑名)/openssh/install/zlib-1.2.3”目錄下。OpenSSL# cd (全路徑名)/openssh/openssl-1.0.1c# ./Configure –prefix=(全路徑名)/openssh/install/openssl-1.0.1c os/compiler:arm-none-linux-gnueabi-gcc# make# make install經過編譯和安裝之後,編譯產生的OpenSSL庫和標頭檔就安裝在了“(全路徑名)/openssh/install/openssl-1.0.1c”目錄下。  www.2cto.com  OpenSSH# cd (全路徑名)/openssh/openssh-6.0p1# ./configure --host=arm-linux --with-libs --without-pam --with-zlib=/home/Archer/Desktop/openssh/install/zlib-1.2.3--with-ssl-dir=/home/Archer/Desktop/openssh/install/openssl-1.0.1c --disable-etc-default-login CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar# make# make install至此,OpenSSH的編譯完成。將OpenSSH布局到ARM板u 將 openssh-6.0p1目錄下的 sshd複製到目標板的/usr/local/sbin目錄;u 將 openssh-6.0p1目錄下的scp、sftp、ssh、ssh-add、ssh-agent、ssh-keygen、ssh-keyscan 和ssh-rand-helper複製到目標板的/usr/local/bin目錄;u 將openssh-6.0p1目錄下的sftp-server和ssh-keysign複製到目標板的/usr/local/libexec目錄;u 將openssh-6.0p1目錄下的sshd_config、ssh_config 和moduli拷貝到目標板的/usr/local/etc目錄;u 在目標板上建立SSHD工作所需目錄和使用者;  www.2cto.com  # mkdir /var/empty# chown root:root /var/empty# chmod 755 /var/empty# addgroup sshd# adduser -G sshd -g 'sshd privsep' -h /var/empty -s /bin/ssh sshdu 在目標機或者主機上,產生認證/密碼對等。# 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 ""產生的6個檔案ssh_host_dsa_key、ssh_host_dsa_key.pub、ssh_host_key、ssh_host_key.pub和ssh_host_rsa_key、ssh_host_rsa_key.pub需要複製到目標板得/usr/local/etc目錄。u 運行/usr/local/sbin/sshd即可開啟SSH服務。參改筆者使用的Busybox版本為1.17.3。Busybox注意u 編譯Busybox時,“Login/Password Management Utilities---> [ ]Use internal password and group functions rather than system functions”此項不要選。u /etc/passwd,該檔案要特別關注,因為OpenSSH(SSHD)對使用者管理校正要求很嚴,所以Busybox添加的使用者基本是不符合要求的,主要表現為密碼失效等,要手動修改,樣本如下:使用Busybox添加使用者時,/etc/shadow檔案大概形式如下:# cat /etc/shadowroot:$1$m.jegaqA$vA.rBTVryyUAcRvyZ2gOL1:0:0:99999:7:::telnetd:$1$N4uZUEcU$yotoDExxgGXs6PE7PQuIR1:0:0:99999:7:::honey:$1$SwtHyL/h$MsEX6Vnqz/qhwDsivDqD20:0:0:99999:7:::sshd:$1$elylgRon$FOHgkwpPMcNI5s.iL8ZS/.:0:0:99999:7:::這樣的話,使用SSH登入就會出現使用者登入失敗,提示諸如“WARNING: Your password has expired. You must change your password now and login again!”等等。需要手工修改,大致如下:  www.2cto.com  # cat /etc/shadowroot:$1$m.jegaqA$vA.rBTVryyUAcRvyZ2gOL1:15695:5:99999:7:5:20000:telnetd:$1$N4uZUEcU$yotoDExxgGXs6PE7PQuIR1:15695:5:99999:7:5:20000:honey:$1$SwtHyL/h$MsEX6Vnqz/qhwDsivDqD20:15695:5:99999:7:5:20000:sshd:$1$elylgRon$FOHgkwpPMcNI5s.iL8ZS/.:15695:5:99999:7:5:20000: 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.