嵌入式开发工具——移植openssh到fs4412开发板

工具下载

开发板:fs4412
软件包与工具:

1)openssh-7.9p1.tar.gz 
(2)openssl-1.0.2p.tar.gz
(3)zlib-1.2.8.tar.gz
(4)交叉编译工具  arm-none-linux-gnueabi-gcc 4.5.1

下载地址:

openssh:http://mirror.esc7.net/pub/OpenBSD/OpenSSH/portable/openssh-6.1p1.tar.gz
openssl:http://www.openssl.org/source/openssl-1.0.1c.tar.gz
   zlib:http://zlib.net/zlib-1.2.7.tar.gz

百度网盘:

    链接:https://pan.baidu.com/s/1cVz9bFaSV7gCGCQSRNTXow 
  提取码:rymc 
一、zlib编译与安装

(1)解压 tar -xvf zlib-1.2.8.tar.gz 进入解压后的目录
(2)配置

./configure --prefix=/home/rootfs/home/work/packbage/zlib 
#prefix为指定的安装目录

(3)修改Makefile 修改为本机的交叉编译工具

CC=arm-none-linux-gnueabi-gcc
AR=arm-none-linux-gnueabi-ar 
CPP =arm-none-linux-gnueabi-gcc -E 
LDSHARED=arm-none-linux-gnueabi-gcc  -shared -Wl,-soname,libz.so.1,--version-script,zlib.map

在这里插入图片描述
在这里插入图片描述
(4)编译 make
(5)安装(安装后的文件在prefix指定的文件目录) make install
在这里插入图片描述

二、openssl编译与安装

(1)解压 tar -xvf openssl-1.0.2p.tar.gz 进入解压之后的目录
(2)配置

./Configure --prefix=/home/rootfs/home/work/packbage/openssl  os/compiler:arm-none-linux-gnueabi-gcc
#prefix:指定安装目录 
#os/compile:执行交叉编译工具

(3)执行 make
(4)执行 make install
在这里插入图片描述

三、openssh编译与打包

(1)解压 tar -xvf openssh-7.9p1.tar.gz 并进入目录
(2)配置

./configure --host=arm-linux --prefix=/usr/local/openssh --with-zlib=/home/rootfs/home/work/packbage/zlib --with-ssl-dir=/home/rootfs/home/work/packbage/openssl --disable-etc-default-login --disable-strip CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar 
 prefix:指定安装目录
   zlib:指定的zlib目录
ssl-dir:指定openssl目录
  CC/AR:交叉编译工具

(3)执行make make之后不需要安装,手动打包并到开发板上去安装
(4)执行以下命令将openssh所需的文件进行打包,最终得到openssh.tgz压缩包 将其拷贝到开发板的文件系统的根目录中进行解压

mkdir -p usr/local/openssh 
cd usr/local/openssh 
mkdir etc bin 
cd ../../../ 
cp scp  sftp  ssh  ssh-add  ssh-agent  ssh-keygen  ssh-keyscan ./usr/local/openssh/bin 
cp sshd_config ssh_config ./usr/local/openssh/etc 
mkdir sbin bin 
cp sshd ./sbin 
cd bin 
ln -s /usr/local/openssh/bin/scp 
ln -s /usr/local/openssh/bin/sftp 
ln -s /usr/local/openssh/bin/ssh 
ln -s /usr/local/openssh/bin/ssh-add 
ln -s /usr/local/openssh/bin/ssh-agent 
ln -s /usr/local/openssh/bin/ssh-keygen 
ln -s /usr/local/openssh/bin/ssh-keyscan 
cd .. 
mkdir -p usr/local/libexec 
cp sftp-server  ssh-keysign usr/local/libexec 
mkdir ../final 
cp -r bin sbin usr ../final 
cd ../final 
tar czvf openssh.tgz ./ 

在这里插入图片描述

四、移植openssh

(1)拷贝到开发板文件系统根目录解压
在这里插入图片描述

解压:tar xvf openssh.tgz  
查看目录下的文件:ls /usr/local/openssh

在这里插入图片描述
在这里插入图片描述
(2)修改etc目录下的passwd、group、shadow(如果文件不存在则手动创建)
创建文件(存放相关信息)

mkdir -p /var/run/sshd

passwd文件

root:x:0:0:root:/root:/bin/sh               #如果存在则只需加上第二行的语句
sshd:x:15:50:::/bin/sh

group文件

root:x:0:                                   #如果存在则只需加上第二行的语句
sshd:*:50:

shadow文件

root:kBhSK8vf3cqZo::5:99999:7:5:20000:      #如果存在则只需加上第二行的语句
sshd:eDMsIoV7P3RXE:11851:5:99999:7:5:20000: #中间部分的代码代表密码 123456 两行是两种不同的加密算法生成

修改密码:passwd root
在这里插入图片描述
(3)配置ssh 秘钥
拷贝zlib目录中的so文件到文件系统中的/lib中

cp *.so.* /home/rootfs/lib/    

在这里插入图片描述
在这里插入图片描述
配置秘钥

cd /usr/local/openssh/etc 
/usr/local/etc # ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
/usr/local/etc # ssh-keygen -t dsa -f ssh_host_dsa_key -N ""
/usr/local/etc # ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N ""
/usr/local/etc # ssh-keygen -t dsa -f ssh_host_ed25519_key -N ""

生成的秘钥文件
在这里插入图片描述
建立empty文件夹

mkdir /var/empty

(4)修改配置文件
编辑 sshd_config

cd /usr/local/openssh/etc 
vi sshd_config

向sshd_config的末尾添加如下内容

PermitRootLogin yes
HostKey /usr/local/openssh/etc/ssh_host_rsa_key
HostKey /usr/local/openssh/etc/ssh_host_ecdsa_key
HostKey /usr/local/openssh/etc/ssh_host_dsa_key
HostKey /usr/local/openssh/etc/ssh_host_ed25519_key

PubkeyAuthentication yes

PasswordAuthentication yes
PermitEmptyPasswords yes

AllowUsers sshd root

Subsystem sftp internal-sftp

Match group 1000
  ChrootDirectory /home/sshd
  X11Forwarding no
  AllowTcpForwarding no
  ForceCommand internal-sftp

(5)挂载devpts
在dev下建立挂载目录

mkdir /dev/pts 

挂载devpts

mount devpts /dev/pts -t devpts

(6)启动ssh进行远程登录

/sbin/sshd

ps -e | grep ssh #查看ssh进程是否存在
在这里插入图片描述
查看开发板ip

ifconfig

在这里插入图片描述
远程登录

ssh root@192.168.1.109

在这里插入图片描述
(7)设置自启动ssh服务
修改rcS脚本文件

vi /etc/init.d/rcS

在末尾增加

mkdir /dev/pts
mount devpts /dev/pts -t devpts
/sbin/sshd

大功告成~ 再也不用使用串口进行终端控制
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值