OpenSSH移植到Linux开发板
前言
在Linux开发中,有时候需要远程登录到开发板上对系统进行一些操作,这个时候就需要用到SSH服务。SSH(Secure Shell 安全外壳协议)是较可靠,专为远程登录会话和其他网络服务提供安全性的协议,OpenSSH是SSH协议的一个免费开源版本。
这里一共需要移植三个软件包:zlib,openssl和openssh,可依次到官网下载对应的源码:
zlib官网:http://www.zlib.net/
openssl 官网:https://www.openssl.org/source/
opnssh 官网: http://www.openssh.com
提示:以下是本篇文章正文内容,下面案例可供参考
一、移植zlib库
在官网我下载的是1.2.11版本的,将下载的zlib-1.2.11.tar.gz 拷贝到本地Ubuntu中进行解压
tar -xvzf zlib-1.2.11.tar.gz
解压完成后,创建一个zlib文件夹,然后进行解压后的zlib-1.2.11 源码文件中,配置并编译
#1. 配置命令
CC=arm-linux-gnueabihf-gcc
LD=arm-linux-gnueabihf-ld
AD=arm-linux-gnueabihf-as
./configure --prefix=/home/hx/linux/tools/zlib
#注意 以上命令以空格为界,这里为了美观 用了换行
#CC LD AD是根据自己所使用的交叉编译器配置
#--prefix 是之前创建zlib目录所在的路径
#2. 配置完成 开始编译
make
#3. 开始安装
make install
编译完成后,将zlib目录下的lib中库文件移植到开发板的/lib目录下
二、 移植openssl库
在官网下载的是1.1版本的,将下载的openssl-1.1.ld.tar.gz拷贝到本地Ubuntu中,并解压
tar -xvzf openssl-1.1.ld.tar.gz
解压完成后,创建一个openssl文件夹,然后进行解压后的openssl-1.1.ld 源码文件中,配置并编译
#1. 配置命令
./Configure linux-armv4 shared no-asm
--prefix=/home/hx/linux/tools/openssl
CROSS_COMPILE=arm-linux-gnueabihf-
#注意 以上命令以空格为界,这里为了美观 用了换行
#linux-armv4 是32位ARM凭条 没有armv7的选项
#--prefix 是之前创建openssl目录所在的路径
#2. 配置完成 开始编译
make
#3. 开始安装
make install
编译完成后会在openssl/lib下生成libcrypto和libssl库,将这些库拷贝到开发板的/usr/lib目录下
三、 移植openssh库
在官网下载到openssh-8.2p1.tar.gz,拷贝到本地Ubuntu中并解压
tar -xvzf openssh-8.2p1.tar.gz
解压后进入到openssh-8.2p1目录,开始配置和编译
#1. 配置
./configure --host=arm-linux-gnueabihf --with-libs
--with-zlib=/home/hx/linux/tools/zlib --with-ssl-dir=/home/hx/linux/tools/openssl
--disable-etcdefault-login CC=arm-linux-gnueabihf-gcc
AR=arm-linux-gnueabihf-ar //配置
#注意 以上命令以空格为界,这里为了美观 用了换行
#--with-zlib参数用于指定 zlib 库所在的目录
#--with-ssl-dir参数用于指定 openssl 库所在的目录
#2. 编译 不用make install
make
将编译完成后的文件移植到linux开发板中
1. 在开发板中创建目录
在开发板创建以下目录
/usr/local/bin
/usr/local/sbin
/usr/local/libexec
/usr/local/etc
/var/run
/var/empty
mkdir /usr/local/bin -p
mkdir /usr/local/sbin -p
mkdir /usr/local/libexec/ -p
mkdir /usr/local/etc -p
mkdir /var/run -p
mkdir /var/empty/ -p
2. 将文件拷贝到对应目录下
1. /usr/local/bin 拷贝以下文件
scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan
2. /usr/local/sbin 拷贝sshd
3. /usr/local/etc 拷贝moduli ssh_config sshd_config
4. /usr/local/libexec 拷贝sftp-server ssh-keysign
3. 创建对应软连接
cd /bin/
ln -s /usr/local/bin/scp
ln -s /usr/local/bin/sftp
ln -s /usr/local/bin/ssh
ln -s /usr/local/bin/ssh-add
ln -s /usr/local/bin/ssh-agent
ln -s /usr/local/bin/ssh-keygen
ln -s /usr/local/bin/ssh-keyscan
cd /sbin/
ln -s /usr/local/sbin/sshd
软连接创建完成以后就可以直接调用上面 ssh 相关命令了
将/usr/local/etc/sshd_config文件的 #PermitRootLogin改为
PermitRootLogin yes
4. 开发板上生成密钥文件
进入到开发板/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 ""
完成以后就会在/usr/local/etc 目录下产生 8 个以“ssh_host_”开头的秘钥文件
文章来源:https://www.toymoban.com/news/detail-426241.html
5. 开启SSH
直接输入命令文章来源地址https://www.toymoban.com/news/detail-426241.html
/sbin/sshd //启动 sshd 服务
#也可以在/etc/init.d/rcS 文件中加入如下命令,实现 ssh 服务开机自启动
/sbin/sshd &
到了这里,关于OpenSSH移植到Linux开发板的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!