工具下载
开发板: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
大功告成~ 再也不用使用串口进行终端控制