升级原系统中的SSHd服务
由于原系统自带的SSH版本过低存在漏洞风险,所以需要升级新版本的SSH
交叉编译前准备
需要下面三个库,都是开源的,去对应的网站下载即可
openssh-9.6p1.tar.gz
openssl-1.1.1w.tar.gz
zlib-1.3.1.tar.gz
这里没有使用最新的openssl库,因为最开始使用最新“openssl-3.3.2.tar.gz”库最后生成的ssh运行时报错
sshd: malloc : corrupted top size
最后使用openssl-1.1.1版本重新编译,运行通过。
编译openssl
tar -zxvf openssh-9.6p1.tar.gz #解压
mkdir ssl-install #准备安装目录
cd openssl-1.1.1w./Configure linux-mips32 --cross-compile-prefix=mips-linux-gnu- --prefix=/home/work/ssh-9.6/ssl-install shared no-asm no-asyncmake -j4
make install
如何不确定自己使用的平台名字怎么写,可通过“./Configure --help”查看。
编译zlib
tar -zxvf zlib-1.3.1.tar.gz
mkdir zlib-install
cd zlib-1.3.1export CROSS_COMPILE=mips-linux-gnu-
export CC=mips-linux-gnu-gcc
export AR=mips-linux-gnu-ar
export RANLIB=mips-linux-gnu-ranlib
CFLAGS="-fPIC"
./configure --shared --prefix=/home/work/ssh-9.6/zlib-installmake -j4
make install
编译openssh
tar -zxvf openssh-9.6p1.tar.gz
cd openssh-9.6p1./configure --host=mips-linux-gnu --with-libs --prefix=/home/work/ssh-9.6/ssh-install --with-ssl-dir=/home/work/ssh-9.6/ssl-install --with-zlib=/home/work/ssh-9.6/zlib-install --sysconfdir=/etc/ssh --disable-etc-default-loginmake -j4
复制生成的文件
cp scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan ../fs-ssh/usr/bin/
cp moduli ssh_config sshd_config ../fs-ssh/etc/ssh/
cp sftp-server ssh-keysign ../fs-ssh/usr/libexec/
cp sshd ../fs-ssh/usr/sbin/sshd
cp ../ssl-install/lib/libcrypto.so.1.1 ../fs-ssh/usr/lib/
生成密钥文件
cd ../fs-ssh/etc/ssh/
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 "
修改sshd_config配置文件
vim sshd_config
32 #PermitRootLogin prohibit-password
修改为
32 PermitRootLogin yes #使用与系统相同的登录密码
最后将文件打包到目标板重启系统即可。