Openssh arm移植经验记录

Openssh arm移植经验记录

参考资料:
https://blog.csdn.net/yasirliberty/article/details/51274971
https://blog.csdn.net/zhongruixian/article/details/21076405
https://blog.csdn.net/shjhuang/article/details/56830864
https://blog.csdn.net/ygy6146/article/details/52453490

由于公司产品被安全扫描到有ssh安全漏洞,发现版本还是4.6,因此决定升级到7.7,参考了网上的资料,经过了无数失败和重启,总算搞定了,记录如下:

升级过程基本同参考资料的描述,按顺序安装zlib,openssl和openssh
1.下载zlib-1.2.3.tar.gz
https://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.3/zlib-1.2.3.tar.gz
2. 下载openssl-1.0.2k.tar.gz
https://www.openssl.org/source/openssl-1.0.2k.tar.gz
3. 下载
http://mirrors.evowise.com/pub/OpenBSD/OpenSSH/portable/openssh-7.4p1.tar.gz

一、交叉编译软件
安装zlib很顺利,按照文档一步步做就好了
./configure --shared --prefix=/root/temp/bin/zlib(这里是你要安装的目录)
进入Makefile里,把
将CC,CPP,AR,LDSHARED这几个的值加上前缀arm-linux-gnueabihf-
(这里要说一点,arm-linux-gnueabihf-gcc这个我没安装,一开始的机器上少了一个ar,openssl编译的时候一直不成功,后来偷懒,换了个有这个环境的机器)
编译,make;make install

二、openssl
安装openssl就比较痛苦,折腾了一天,先用最新的1.1.1版本,死活编译不通过,最终换成1.0.2p,经过反复测试,总算成功了,而且因为configure参数不对,导致openssh编译配置文件无法生成,后面反复编译了几次

./Configure --prefix=/root/temp/bin/openssl os/compiler:/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-gcc

注意:这个 --fPIC一定要加,不然后面openssh编译会出错,我在这里卡了很久
编译,make;make install

三、openssh
这个也是反复编译了很久,开始一直不能生成makefile文件,不得已,我只有通过sh -x 调试模式分析,最后修改configure文件里的内容,才完成了配置文件的生成
修改的内容是:要把配置生成脚本里的/usr/local/ssl内容替换成你自己已经编译好的openssl目录,我这里是/root/temp/bin/openssl ,感觉下面语句了ssl-dir没起作用

./configure --host=arm-linux-gnueabihf --with-ssl-dir=/root/temp/bin/openssl --with-zlib=/root/temp/bin/zlib --prefix=/usr/local --disable-etc-default-login CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar

这里prefix也坑了我一把,编译好的文件放在板子上,提示找不到对应目录下的sshd_config,只好修改prefix,重新编译一遍

编译:make,不用make install,因为我们不是升级ubuntu的openssh

四、移植
这个相对简单,按照文档说明,把几个需要的文件cp到板子上就好了,可以自己做个脚本,方便后面批量升级
scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan 拷贝到目标板/usr/sbin
sshd_config拷贝到目标板/usr/local/etc
sftp-server ssh-keysign 拷贝到目标板 /usr/libexec
sshd 拷贝到目标板 /usr/sbin/
在板子/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 “”

修改目标板passwd文件(这步我没做,因为原来就有)
在/etc/passwd 中添加下面这一行
sshd❌74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin

五、验证
做完这些,先/sbin/sshd重启sshd,验证移植是否成功
然后修改sshd_config文件

PasswordAuthentication yes
PermitRootLogin yes
前面的注释去掉,否则会出现远程ssh把密码错误,无法登陆的问题

最后重启板子,确认登陆无异常,完成移植。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值