下载

1、编译openssh需要额外两个库:openssl 和zlib,网址如下:

zlib 官方下载:http://www.zlib.net/

openssl 官方下载:https://www.openssl.org/source/

openssh 官网下载:https://www.openssh.com/portable.html

它们之间没有版本冲突,都下载最新板的即可。本文以 zlib-1.2.8.tar.gzopenssl-1.0.1h.tar.gzopenssh-6.6p1.tar.gz这三个版本为例,其他版本过程一样。

部署

cd
mkdir ssh
cd ssh

#建立zlib安裝目录,移植过程zlib镜像会安装到此目录
mkdir zlib.install

#建立openssl安裝目录,移植过程openssl镜像会安装到此目录
mkdir openssl.install

#设置Corss Compile器路径到PATH环境变量
export PATH=$PATH:/usr/local/arm-2010q1/bin/

#设置Corss Compile目标架构
export CROSS=aarch64-linux-gnu

复制解压缩

zlib-1.2.8.tar.gzopenssl-1.0.1h.tar.gzopenssh-6.6p1.tar.gz三个原始码复制到ssh 文件夹下,并解压缩:

tar zxvf zlib-1.2.8.tar.gz
tar zxvf openssl-1.0.1h.tar.gz
tar zxvf openssh-6.6p1.tar.gz

编译zlib

编译zlib 成镜像。

cd zlib-1.2.8
prefix=$HOME/ssh/zlib.install CC=${CROSS}-gcc ./configure
vi Makefile
make
make install

注:prefix 前面没有 --,CC 后面是交叉编译器,./configure要放在最后。完成后,会在 ~/ssh/zlib.install 下生成镜像文件。

编译openssl

编译openssl 成镜像。

cd ../openssl- 1.0 . 1 h
./Configure linux-aarch64 --cross-compile-prefix=${CROSS}- --prefix=$HOME/openssl.install shared
make
make install

注:其中 ./Configure 第一个字母是大写的,交叉编译使用 os/compiler 来指定。

编译openssh

编译openssh 会引用上面编译的zlib 和openssl 的安装目录,如下。

cd ../openssh- 6.6 p1
./configure --host=${CROSS} --with-libs --with-zlib=$HOME/zlib.install --with-ssl-dir=$HOME/openssl.install --disable-etc-default-login
make

注:openssh 不需要 make install

开发板准备

确保开发板上有以下目录,如果没有可以自己建立:

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

安装zlib

Host 端 ~/ssh/zlib.install/ 目录下文件复制到开发板系统中

cp -R ~/ssh/zlib.install/* ${DEV_ROOT}/usr/

安装OpenSSL

Host 端 ~/ssh/openssl.install/ 目录下文件复制到开发板系统中

cp -R ~/ssh/openssl.install/* ${DEV_ROOT}/usr/

安装OpenSSH

Host 端 ~/ssh/openssh-6.6p1/ 目录下文件复制到开发板系统中

cp scp sftp ssh sshd ssh-add ssh-agent ssh-keygen ssh-keyscan ${DEV_ROOT}/usr/local/bin
cp moduli ssh_config sshd_config ${DEV_ROOT}/usr/local/etc
cp sftp-server ssh-keysign ${DEV_ROOT}/usr/libexec

生成Key 档

在开发板 /usr/local/etc/ 目录下生成key 档:

cd /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 dsa - f ssh_host_ed25519_key -N ""

修改 ssh_host_ed25519_key 权限为600:

chmod 600 ssh_host_ed25519_key

开发板使用者设定

打开 /etc/passwd 文件,在最后添加下面这一行:

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

如果开发板的 root 用户没有密码,键入以下命令然输入两次密码来修改,否其他设备无法连接:

passwd root

测试

最后执行 sshd 看看是否启动

/usr/local/bin/sshd
ssh root@127.0.0.1
最后修改:2023 年 09 月 10 日
如果觉得我的文章对你有用,请随意赞赏