openssh arm linux 编译,openssh编译安装到ARM嵌入式系统中
目錄
一.SSHD編譯(此步驟在虛擬機(jī)上執(zhí)行)
1.1 在/root/目錄下創(chuàng)建ssh目錄
1.2 交叉編譯zlib
1.3交叉編譯openssl
1.4交叉編譯openssh
二.移植(此步驟在開發(fā)板上執(zhí)行)
2.1 在開發(fā)板上建立需要的目錄
2.2 下面是在開發(fā)板上操作
2.3修改sshd_config
三、加入自啟動(dòng)腳本
參考:
注:如果想自行編譯移植,即可從第一步開始;若已有sshd 、sftp-server、密鑰等文件則直接進(jìn)行第二個(gè)步驟;相關(guān)源碼及編譯后的文件在附件中可見。
一.SSHD編譯(此步驟在虛擬機(jī)上執(zhí)行)
源碼包:zlib-1.2.3.tar.bz2
openssl-0.9.81.tar.gz
openssh-4.6p1.tar.gz
說(shuō)明:本次只移植SSH的服務(wù)端,客戶端相關(guān)程序和配置文件不拷貝到開發(fā)板。
1.1 在/root/目錄下創(chuàng)建ssh目錄
#mkdir /root/ssh
#cd /root/ssh
#mkdir compressed install source注:compressed用于存放源碼包
install軟件安裝目錄
source源碼包解壓目錄
將三個(gè)源碼包拷貝到compressed目錄下。
1.2交叉編譯zlib
# tar -jxvf zlib-1.2.3.tar.bz2? -C? ../source
# cd ../source/zlib-1.2.3
# ./configure --prefix=/root/ssh/install/zlib-1.2.3
# vi Makefile?????? //修改Makefile中的某些變量值,指定自己的交叉編譯工具
CC=arm-linux-gnueabihf-gcc
CPP=arm-linux-gnueabihf-gcc -E
AR=arm-linux-gnueabihf-ar rc
LDSHARED=arm-linux-gnueabihf-gcc
保存退出執(zhí)行make
make install
1.3交叉編譯openssl
# cd /root/ssh/compressed/
# tar -zxvf openssl-0.9.81.tar.gz? -C? ../source
# cd ../source/openssl-0.9.81
#./Configure? --prefix=/root/ssh/install/openssl-0.9.81? os/compiler:arm-linux-gnueabihf-gcc
執(zhí)行make(如果遇到錯(cuò)誤輸入rm -f /usr/bin/pod2man)
make install(如果遇到錯(cuò)誤輸入rm -f /usr/bin/pod2man)
1.4交叉編譯openssh
# cd /root/ssh/compressed
# tar -zxvf openssh-4.6p1.tar.gz? -C ../source
# cd ../source/openssh-4.6p1
#./configure --host=arm-linux-gnueabihf --with-libs???????????????????????????????? --with-zlib=/root/ssh/install/zlib-1.2.3/ --with-ssl-dir=/root/ssh/install/openssl-0.9.81 --disable-etc-default-login CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar
#make注:不要make install
這時(shí)在/root/ssh/source/ openssh-4.6p1/目錄下生成了sshd、sftp-server、密鑰等文件。
可以用strip工具把sshd體積變小,以節(jié)省空間,操作如下:
#arm-linux-gnueabihf-strip -s sshd
還需要建立密鑰(用ssh-keygen工具):
#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 ""
會(huì)生成這六個(gè)密鑰文件:
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
二.移植(此步驟在開發(fā)板上執(zhí)行)
2.1 在開發(fā)板上建立需要的目錄
#mkdir -p /usr/local/etc
#mkdir -p /var/run /var/empty/sshd? 并設(shè)定權(quán)限chmod 755 /var/empty
把在虛擬機(jī)下 /root/ssh/source/openssh-4.6p1生成的服務(wù)端相關(guān)文件拷貝到開發(fā)板相應(yīng)目錄下:
sshd和 sftp-server復(fù)制到開發(fā)板的/sbin/目錄下
生成的六個(gè)密鑰文件和sshd_config復(fù)制到/usr/local/etc/目錄下
進(jìn)入/usr/local/etc/目錄下,修改權(quán)限:
# chmod 0644 *
# chmod 0600 ssh_host_dsa_key? ssh_host_key? ssh_host_rsa_key
2.2 下面是在開發(fā)板上操作
修改/etc/目錄下的passwd和group文件,添加sshd用戶和組
#vi /etc/passwd
在最后一行添加sshd:*:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
保存退出。
#vi /etc/group
在最后一行添加sshd:*:74:
保存退出。
2.3修改sshd_config
分別去掉下列語(yǔ)句前的注釋號(hào)(即去掉#號(hào))并修改為:
PermitRootLogin????yes―――――允許根用戶登陸
PermitEmptyPasswords?yes――――允許使用空密碼
UsePrivilegeSeparation???no――――把安全級(jí)別降低,因?yàn)椴粫?huì)連接互聯(lián)網(wǎng)
同時(shí)修改sftp-server的存放路徑為 /sbin/sftp-server
運(yùn)行sshd時(shí)要用絕對(duì)路徑
#/sbin/sshd
這樣可以在windows下用ssh客戶端進(jìn)行連接了。
三、加入自啟動(dòng)腳本
/etc/init.d目錄下新建sshd文件
#! /bin/sh
sshd=/sbin/sshd
test -x "$sshd" || exit 0
case "$1" in
start)
echo -n "Starting sshd daemon"
start-stop-daemon --start --quiet --exec $sshd -b
echo "."
;;
stop)
echo -n "Stopping sshd"
start-stop-daemon --stop --quiet --exec $sshd
echo "."
;;
restart)
echo -n "Stopping sshd"
start-stop-daemon --stop --quiet --exec $sshd
echo "."
echo -n "Waiting for sshd to die off"
for i in 1 2 3 ;
do
sleep 1
echo -n "."
done
echo ""
echo -n "Starting sshd daemon"
start-stop-daemon --start --quiet --exec $sshd -b
echo "."
;;
*)
echo "Usage: /etc/init.d/sshd {start|stop|restart}"
exit 1
esac
exit 0
進(jìn)入/etc/init.d目錄執(zhí)行命令
cd /etc/init.d
ln -sf ../init.d/sshd ../rc5.d/S30sshd
ln -sf ../init.d/sshd ../rc3.d/S30sshd
即可實(shí)現(xiàn)開機(jī)自動(dòng)啟動(dòng)sshd服務(wù)。
源碼下載:?https://download.csdn.net/download/v6543210/10746939
參考:
1.Linux嵌入式學(xué)習(xí)-交叉編譯openssl
https://www.cnblogs.com/ynxf/p/6375091.html
linux系統(tǒng)的7種運(yùn)行級(jí)別
https://blog.csdn.net/ccfxue/article/details/52767863
/etc/rc.d/init.d自啟動(dòng)程序說(shuō)明
https://blog.csdn.net/xysoul/article/details/44956525
總結(jié)
以上是生活随笔為你收集整理的openssh arm linux 编译,openssh编译安装到ARM嵌入式系统中的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宽带设置网站(宽带设置网站怎么设置)
- 下一篇: 刘晓棕的个人资料(刘晓棕是任正非大女儿的