一:下载zlib openssl openssgh源码
下载:openssh-8.5p1.tar.gz
openssl-1.1.1k.tar.gz
zlib-1.2.2.tar.gz
下载地址:openssh相关源码资源-CSDN文库
二:编译安装以(aarch64-linux-gnu为例)
1:解压下载的压缩包
tar -vxzf zlib.tar.gz
tar -vxzf openssl.tar.gz
tar -vxzf openssh.tar.gz
2:编译zlib
cd zlib-1.2.2
./configure --prefix=/usr/local/openssh/zlib-1.2.2/_install
sed -i 's/CC=gcc/CC=aarch64-linux-gnu-gcc/g' Makefile
sed -i 's/LDSHARED=gcc/LDSHARED=aarch64-linux-gnu-gcc/g' Makefile
sed -i 's/CPP=gcc/CPP=aarch64-linux-gnu-gcc/g' Makefile
sed -i 's/AR=ar/AR=aarch64-linux-gnu-ar/g' Makefile
sed -i 's/RANLIB=ranlib/RANLIB=aarch64-linux-gnu-arranglib/g' Makefile
make -j24
make install
cd ..
3: 编译openssl
cd openssl-1.1.1k
./config no-asm shared \
--prefix=/usr/local/openssh/openssl-1.1.1k/_install \
--cross-compile-prefix=aarch64-linux-gnu-
sed -i 's/-m64/ /g' Makefile
sed -i 's/-m64/ /g' Makefile
make -j24
make install
cd ..
4: 编译openssh
cd openssh-8.5p1
./configure --host=aarch64-linux-gnu --with-libs \
--with-privsep-path=/usr/local/openssh/openssh-8.5p1/_install/var \
--with-zlib=/usr/local/openssh/zlib-1.2.2/_install \
--with-ssl-dir=/usr/local/openssh/openssl-1.1.1k/_install \
--disable-strip \
CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-ar
make -j24
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' sshd_config
cp sshd ../../output/mc6670_chip/rootfs_uclibc/sbin/
cp sshd_config ../../output/mc6670_chip/rootfs_uclibc/etc/
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' sshd_config
make install
三:将编译好的文件和库放到开发板相关的目录
1:确保开发板有以下目录,没有则创建
/usr/local/bin/
/usr/local/sbin/
/usr/local/etc/
/usr/local/libexec/
/var/run/
/var/empty/
2:将编译生成的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
3:在主机openssh-8.5p1目录,运行以下命令生成KEY文件
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_host_*_key这3个文件copy到开发板的 /usr/local/etc/目录下,或者在开发板 /usr/local/etc/目录直接使用命令生成文件
4:将之前编译zlib生成的libz.so.1文件拷贝到开发板/usr/lib
5:修改开发板的passwd文件
在开发板/etc/passwd 中添加下面这一行sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
6:测试
在开发板运行 #/usr/local/sbin/sshd