Arm linux开发板移植OpenSSH

目录

一、背景介绍

二、下载源码

三、交叉编译

1、交叉编译zlib

2、交叉编译openssl

3、交叉编译openssh

四、Arm linux开发板SSH环境搭建

1、创建相关目录

2、拷贝文件到开发板上

3、生产Key文件并拷贝到开发板上

4、修改配置

五、SSH测试


一、背景介绍


        笔者开发的嵌入式设备在经常安装在不好接触的地方,不太方拉出串口来调试,因此就想到用SSH远程登录调试设备。SSH 全称为 Secure Shell(安全外壳协议,简称 SSH),是一种加密的网络传输协议,用于在不安全的网络中为网络服务提供安全的传输环境。 SSH 功能很强大,但是最常用的还是用于远程登录。

二、下载源码

zlib:
        官网下载:https://www.zlib.net
        版本:zlib-1.2.2.tar.gz
openssl:
        官网下载:https://www.openssl.org/source
        版本:openssl-1.1.1k.tar.gz
openssh:
        官网下载:http://www.openssh.com/portable.html
        阿里云镜像:https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable
        版本:openssh-8.5p1.tar.gz
注意:openssh与openssl是有版本依赖的,版本不匹配可能会导致其他错误。

三、交叉编译

1、交叉编译zlib

解压并配置安装路径

tar -vxzf zlib-1.2.2.tar.gz
cd zlib-1.2.2/
./configure --prefix=/home/lyy/tools/zlib

修改Makefile,将相关工具链改为交叉编译工具链

Arm linux开发板移植OpenSSH_第1张图片


然后编译安装zlib

make
make install

2、交叉编译openssl

参考 使用openssl+curl让嵌入式设备实现https通讯 文章中的安装openssl章节。

3、交叉编译openssh

--with-zlib:zlib库所在的路径
--with-ssl-dir:openssl库所在的路径
注意:openssl编译完不需要安装

tar -vxzf openssh-8.5p1.tar.gz
cd openssh-8.5p1
./configure --host=arm-linux-gnueabihf --with-libs --with-zlib=/home/lyy/tools/zlib --with-ssl-dir=/home/lyy/work/openssl/arm-openssl CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar
make

四、Arm linux开发板SSH环境搭建

1、创建相关目录

确保开发板上有以下目录,如果没有则需创建。

/usr/local/bin
/usr/local/etc
/usr/libexec
/var/run
/var/empty

2、拷贝文件到开发板上

从PC机上/home/lyy/tools/openssh-8.5p1/ 目录下拷贝 scp sftp ssh sshd ssh-add ssh-agent ssh-keygen ssh-keyscan到开发板/usr/local/bin下;
从PC机上/home/lyy/tools/openssh-8.5p1/ 目录下拷贝 moduli ssh_config sshd_config 到开发板/usr/local/etc下;
从PC机上/home/lyy/tools/openssh-8.5p1/ 目录下拷贝 sftp-server ssh-keysign 到开发板/usr/local/libexec下;

3、生产Key文件并拷贝到开发板上

从PC机上/home/lyy/tools/openssh-8.5p1/ 目录下运行

ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
ssh-keygen -t dsa -f ssh_host_dsa_key -N ""
ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N ""
ssh-keygen -t dsa -f ssh_host_ed25519_key -N ""

把生成的ssh_host_*_key文件拷贝到开发板,并将ssh_host_ed25519_key权限修改为600。

chmod 600 /usr/local/etc/ssh_host_ed25519_key

4、修改配置

打开/usr/local/etc/sshd_config 文件,找到“#PermitRootLogin”所在行,将其改为“PermitRootLogin yes”。
打开/etc/passwd文件,在最后一行添加

​
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin


五、SSH测试

如果开发板的root账号还没有密码,使用passwd命令根据提示修改密码

passwd root

在开发板运行,如果提示缺少动态链接库,则在PC主机上软件包和交叉编译工具链lib库搜索并拷贝到开发板上。

/usr/local/bin/sshd

如果没有问题的话,在开发板上用ps命令就能看到sshd进程。

Arm linux开发板移植OpenSSH_第2张图片

笔者使用MobaXterm连接测试,MobaXterm提供了很多的终端软件功能,大家有兴趣可以去了解一下。

Arm linux开发板移植OpenSSH_第3张图片

输入密码,按下回车即可

Arm linux开发板移植OpenSSH_第4张图片

可以考到,我们已经通过SSH连接到开发板了。

Arm linux开发板移植OpenSSH_第5张图片

 

你可能感兴趣的:(linux,linux,arm,arm开发)