OpenSSH交叉編譯和移植

2021-06-25 17:13:26 字數 2683 閱讀 5547

一、openssl交叉編譯編譯

2、解壓:tar xvzf openssl-1.0.1h.tar.gz

3、進入解壓後的目錄,然後再建立輸出目錄(make install是安裝在該目錄),如mkdir outdir

4、配置:./config no-asm --prefix=/home/testdir/openssl-1.0.1h/outdir/ shared

說明:--prefix是編譯輸出目錄,shared表示輸出動態庫,no-asm表示不編譯彙編(如果沒有該選項,交叉編譯是彙編**編譯出問題)。

5、修改makefile:由於我們是要交叉編譯。如下

cc=gcc

-------》cc=arm-linux-gcc    

ar=ar

-------》ar=arm-linux-ar

ranlib=/usr/bin/ranlib

-------》ranlib=arm-linux-ranlib

實際情況據個人交叉編譯環境而異。

6、開始編譯:make && make install

二、openssh交叉編譯和移植

2、解壓:tar xvzf openssh-6.6p1.tar.gz

3、編譯配置

(1)./configure --host=arm-linux-gcc --with-libs --with-zlib=/***/zlib-1.2.3 --with-ssl-dir=/****/openssl-0.9.8e --disable-etc-default-login cc=arm-linux-gcc ar=arm-linux-ar

(2)或者./configure --host=arm-linux-gcc --with-libs --disable-etc-default-login cc=arm-linux-gcc ar=arm-linux-ar

4、編譯:make   (不需要make install)

5、部署開發板:

(1)在目標板上建立以下目錄:

/usr/local/bin/

/usr/local/sbin/

/usr/local/etc/

/usr/local/libexec/

/var/run/

/var/empty/

-將 openssh-6.0p1目錄下的 sshd複製到目標板的/usr/local/sbin目錄;

-將 openssh-6.0p1目錄下的scp、sftp、ssh、ssh-add、ssh-agent、ssh-keygen、ssh-keyscan 和ssh-rand-helper複製到目標板的/usr/local/bin目錄;

-將openssh-6.0p1目錄下的sftp-server和ssh-keysign複製到目標板的/usr/local/libexec目錄;

-將openssh-6.0p1目錄下的sshd_config、ssh_config 和moduli拷貝到目標板的/usr/local/etc目錄

(3)在目標板上建立sshd工作所需目錄和使用者

# 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 sshd

(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 ""

產生的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目錄。

執行/usr/local/sbin/sshd即可開啟ssh服務

建立key:

/usr/local/bin/ssh-keygen -t rsa1 -f ssh_host_key -n "" && /usr/local/bin/ssh-keygen -t rsa -f ssh_host_rsa_key -n "" && /usr/local/bin/ssh-keygen -t dsa -f ssh_host_dsa_key -n "" && /usr/local/bin/ssh-keygen -t dsa -f ssh_host_ecdsa_key -n "" && /usr/local/bin/ssh-keygen -t dsa -f ssh_host_ed25519_key -n ""

sshd指令碼(sshd-server)

#!/bin/sh

base=sshd

# see how we were called.

case "$1" in

start)

/usr/local/sbin/$base &

;;stop)

pid=`/bin/pidof $base`

if [ -n "$pid" ]; then

kill -9 $pid

fi;;

esac

exit 0

madplay移植 交叉編譯

移植madplay 需要如下檔案 madplay 0.15.2b.tar.gz libmad 0.15.1b.tar.gz libid3tag 0.15.1b.tar.gz 和zlib 1.2.3.tar.gz。zlib 1.1.4.tar.gz zlib 1.2.3.tar.gz類似 1 配置編譯...

tcpdump 交叉編譯移植(mips)

一 libpcap 交叉編譯 1libpcap 1.8.1 2 解壓 3 修改configure檔案 a 注釋掉 if test z with pcap test cross compiling yes then as fn error pcap type not determined whencr...

交叉編譯配置移植PHP

安裝php 進入php資料夾 tar xzvf php 5.3.16.tar.gz 4 配置 進入解壓後的資料夾 cc arm linux gcc configure host arm linux prefix home ocean php enable sockets enable pdo dis...