开发板openssh移植步骤

描述

 

SSH简介

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定,为建立在应用层基础上的安全协议。通过对密码进行加密传输验证,可在不安全的网络中对网络服务提供安全的传输环境,实现ssh客户端和ssh服务器端的连接。在Linux类的设备或相关设置中,要实现修改网络、远程控制之类的操作,几乎都会涉及到SSH操作。

 

OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现,提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据。

 

开发板SSH服务移植

openssh依赖于zlib库和openssl库,所以安装openssh需要安装编译三个组件,分别为zlib、openssl和openssh。

# 下载地址

zlib:http://www.zlib.net/

openssl:https://www.openssl.org/source/

openssh:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

 

zlib编译

1.下载zlib库
 

  •  
wget http://www.zlib.net/zlib-1.2.12.tar.gz

 

2.解压zlib库

  •  
tar -zxf zlib-1.2.12.tar.gz

 

3.编译zlib

首先新建一个文件夹来存放编译结果

  •  
mkdir zlib

进入zlib源码目录,配置编译器选项,例如:

  •  
  •  
  •  
export CC=arm-linux-gnueabihf-gcc
export LD=arm-linux-gnueabihf-ld
export AD=arm-linux-gnueabihf-as

配置编译路径

  •  
./configure --prefix=/home/qiyang/imx6ull/openssh/zlib

此时生成一个Makefile文件,我们需要修改Makefile指定与路径无关,在如图所示位置添加-fPIC

开发板

最后执行make && make install命令,进行编译安装;并将编译出来的结果拷贝到开发板的/lib目录下。

 

openssl编译

1.下载openssl

  •  
wget https://www.openssl.org/source/openssl-3.0.2.tar.gz

 

2.解压openssl库

  •  
tar -zxf openssl-3.0.2.tar.gz

 

3.编译openssl

首先建立一个文件夹存放编译结果

  •  
mkdir openssl

配置编译器

  •  
export CROSS_COMPILE=arm-linux-gnueabihf-

配置编译路径

  •  
./Configure linux-armv4 shared no-asm --prefix=/home/qiyang/imx6ull/openssh/openssl

最后执行make && make install命令,进行编译安装;并将编译出来的结果拷贝到开发板的/lib目录下。

 

openssh编译

1.下载openssh

  •  
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.9p1.tar.gz

 

2.解压

  •  
tar -zxf openssh-8.9.tar.gz

 

3.编译openssh

配置

  •  
./configure --host=arm-linux-gnueabihf --with-libs --with-zlib=/home/qiyang/imx6ull/openssh/zlib --with-ssl-dir=/home/qiyang/imx6ull/openssh/openssl --disable-etcdefault-login CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar

最后make,配置编译器和zlib、openssl库的目录。

 

4.安装

首先在开发板上创建以下目录

  •  
  •  
  •  
  •  
  •  
  •  
mkdir -p /usr/local/bin
mkdir -p /usr/local/sbin
mkdir -p /usr/local/libexec/
mkdir -p /usr/local/etc
mkdir -p /var/run
mkdir -p /var/empty/

将编译完成的文件分别复制到开发板目录下。
 

将scp、sftp、ssh、ssh-add、ssh-agent、ssh-keygen、ssh-keyscan复制到/usr/local/bin目录下;

将sshd复制到/usr/local/sbin目录下;

将moduli、ssh_config、sshd_config复制到/usr/local/etc目录下;

将sftp-server、ssh-keysign复制到 /usr/local/libexec目录下;

5.修改passwd

在/etc/passwd 中添加下面这一行

  •  
sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin

 

6.生成密钥

在/usr/local/etc/目录下,使用如下命令生成密钥

  •  
  •  
  •  
  •  
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 ed25519 -f ssh_host_ed25519_key -N ""

需要给ssh和sshd添加可执行权限,

ssh在root/usr/local/bin目录下

chmod +x ssh

sshd在/usr/local/sbin/目录下

chmod +x sshd

 

7.修改/usr/local/etc/sshd_config文件内容

1.将PasswordAuthentication yes前的注释#去掉;

2.将#PermitRootLogin yes前的注释#去掉;

3.将#PermitEmptyPasswords no 修改为PermitEmptyPasswords yes

8.开启ssh服务

开发板

如上所示执行即可开启sshd服务,使用ps命令可以看到该进程在运行

开发板

 

通过上述操作,openssh服务已经在开发板上移植好了,此时使用电脑上的ssh工具就可以连接到开发板了。

开发板

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分