记录一次openssh移植

前言

买了一块正点原子的开发板,系统移植的过程十分痛苦。用linux的新版本因为stm32的设备树文件不一样,没改成功。也没有时间仔细研究为啥,直接拿了商家提供的系统源码版本编译安装上去。后来用buildroot移植后,又出现了ssh连接不上的问题,怀疑是版本问题,只好换版本。但是包管理工具只有opkg,也没研究明白咋用,只能自己下载源码编译了。

ssh连不上

作为ssh服务器的sshd进程是在的,配置文件反复改了好多项尝试,也都不行,截包看都卡在ssh服务器不回密钥上。

新版本移植滑铁卢

要编译openssh,依赖openssl和zlib,然后我就下载了最新版本的源码编译。结果编译成功之后,ssh-keygen一直卡住,sshd等大部分工具都会出现malloc aborted的错误。

用一个适合的版本

参考别人的成功移植经验,挑选了一个适合的版本。期间用过其他版本,编译都不通过,或者configure的时候就报错,估计是不同版本的configure有差别。看到好多网上的说openssl-1.1.1的版本在arm上不行,所以这里选了1.0.1的版本。最后选用的版本是openssh-6.0p1+openssl-1.0.1c+zlib-1.2.3。编译成功之后放上去,ssh-keygen虽然有点慢,但是执行成功了,有戏。然后我没有覆盖bin和sbin下的文件就运行了sshd,结果一直Could not load host key,其实文件我已经用ssh-keygen生成了。后来抱着最后一丝希望,把所有编译出来的工具(ssh、sshd、sftp、ssh-keygen、ssh-keyscan、ssh-keysign、ssh-agent、ssh-add、sftp-server…)都换到对应的目录下。终于成功了。

ssh root@192.168.31.103
The authenticity of host '192.168.31.103 (192.168.31.103)' can't be established.
RSA key fingerprint is SHA256:M1xxmVTDtG73m/AwijlgS4aSdiAhonEHkARrv9m4dQ0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.31.103' (RSA) to the list of known hosts.
root@192.168.31.103's password: 

后话

根据结果猜测,应该是buildroot用了最新版本的openssh+openssl,结果板子不支持。buildroot应该是可以指定版本的,后面研究以下如何继承到buildroot编译过程。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值