ssh是一个常见的、可靠的远程终端/文件传输的协议,OpenHarmony本身并没有ssh服务器的功能。

为了启用ssh功能,我们需要引入一个第三方软件 Dropbear

Dropbear是什么

Dropbear是由Matt Johnston所开发的Secure Shell软件(包括服务端与客户端)。
期望在存储器与运算能力有限的情况下取代OpenSSH,尤其是嵌入式系统。

通俗来说,dropbear是一个ssh服务器的实现软件,同时具有ssh客户端的功能。

dropbear通常在嵌入式Linux上运行,例如大名鼎鼎的OpenWRT默认的ssh的服务器和客户端正是dropbear。

为什么需要使用Dropbear

OpenHarmony默认使用HDC作为调试工具,类似于Android平台的adb。

计算机通过USB线缆连接OpenHarmony设备。可以实现执行命令、文件上传、文件下载等功能。

一般情况下HDC足够大多数人的需求。但你如果更喜欢使用ssh协议,或者有更多高级需求例如

  • 基于网络进行连接,支持密码认证,提供安全可信的加密通道
  • 在多台开发机或设备上同时连接OpenHarmony设备
  • 使用WinSCP软件可视化的进行文件浏览、上传、下载

那么为OpenHarmony设备安装Dropbear将是一个更好的选择。

集成方法

开源中国上已经有开发者xfan1024完成了dropbear对OpenHarmony的适配。

项目地址:https://gitee.com/xfan1024/oh-dropbear

  1. 拉取OpenHarmony代码并正确编译

    请参考我之前的一篇博客: OpenHarmony 编译固件

  2. 编辑repo的清单文件,默认路径位于OpenHarmony源码目录下的./.repo/manifests/default.xml

    • 在原本的<remote>标签下再增加一个<remote>标签

      <remote fetch="." name="origin" review="https://openharmony.gitee.com/openharmony/"/>
      <remote fetch="https://gitee.com/xfan1024/" name="origin"/>
      
    • 添加一个<project>标签,保持与其他<project>标签平级即可

      <project name="oh-dropbear" path="third_party/dropbear" remote="xfan1024"revision="588cd36d3fbd1268c669d32a37e0599124ac7cad"><linkfile src="openharmony-develtools" dest="developtools/dropbear"/>
      </project>
      

      可参考: https://gitee.com/xfan1024/oh-rpi3b/blob/devel/oh-rpi3b.xml 文件的写法

    • 在源码目录执行命令

      repo sync -c third_party/dropbear
      
    • 修改产品描述文件,例如 productdefine/common/products/Hi3516DV300.json

      在parts数组中增加一项

      "developtools:dropbear": {},
      
    • 再次编译即可生成安装了dropbear的固件

如何连接设备

登录信息

重新烧录固件后,dropbear默认自启动

默认用户名:shell 或 root

默认密码:openharmony

若需要修改默认密码,请修改/etc/init/dropbear.cfg文件。

"export DROPBEAR_PASSWORD openharmony"

需要注意的是,/system分区默认以只读形式挂载。你可能需要执行以下命令进行重挂载才可编辑文件。

mount -oremount,rw /

如果你的设备上没有安装vi命令,可以将该文件先将文件拷贝到本机,本机修改完成后再拷贝回设备。

网络配置

要成功连接开发板,需要为开发板设置一个IP地址。可以通过设置界面连接WIFI获取一个IP地址,也可以直接使用命令为有线网卡配置IP地址

# 为eth0配置静态IP地址,IP地址请修改为你想设置的地址
ifconfig eth0 192.168.1.95

如果你希望开机自动设置静态IP地址,可以编辑/etc/init/dropbear.cfg文件,增加一行配置静态IP的命令。

注意,IP地址的设置需要合理。最简单的做法是和你的开发机接入同一个路由器,配置到同一个网段。

当然也可以跨网段,但你需要保证你的开发机到你的设备是路由可达的。

问题诊断

你可以运行以下命令查看dropbear是否正常启动。

ps -A | grep dropbear

你也可以在开发机上运行ping命令测试是否可访问到设备。

ping 192.168.1.95

配置文件参考

{"jobs" : [{"name" : "post-fs","cmds" : ["export DROPBEAR_PASSWORD openharmony","export DROPBEAR_SHELL /system/bin/sh","export DROPBEAR_HOME /","mkdir /data/dropbear","exec /system/bin/ifconfig eth0 192.168.1.95","start dropbear"]}],"services" : [{"name" : "dropbear","path" : ["/system/bin/dropbear", "-FRB"],"disabled" : 1}]
}

OpenHarmony 集成ssh服务器 Dropbear相关推荐

  1. 加密与解密、OpenSSL(SSL/TLS)、OpenSSH(ssh)、dropbear

    下面介绍的是Linux的加密与解密.OpenSSL(SSL/TLS).OpenSSH(ssh).dropbear. 一.数据的加密与解密 1.进程间通信基础 (1).进程间通信方式 同一主机间进程间的 ...

  2. Dropbear-轻量级SSH服务器和客户端

    目录 目录 Dropbear简介 安装drobear 1安装依赖包 2下载dropbear 3安装Drobear Dropbear的使用 Dropbear简介 Dropbear是一个相对较小的SSH服 ...

  3. 轻量级ssh服务dropbear

    轻量级ssh服务dropbear 目录   前言    一.编译前准备    二.编译安装         1.解压源码包         2.查看INSTALL中的内容.         3../c ...

  4. Core Shell: 在macOS上高效管理SSH服务器

    对于开发工程师或者运维工程师来说,一款趁手的SSH服务器及终端管理工具能有效提升自己的工作效率.在Windows系统中,我们有Xshell,MobaXterm或者SecureCRT等神器.然而,在ma ...

  5. SSH服务器管理与Termux使用

    ×××××××××××××××××××××SSH服务器安装及使用××××××××××××××××××××× MobaXterm常用的登录方式是SSH服务器,在Ubuntu终端上可以架设SSH服务器 s ...

  6. ubuntu系统怎么安装ssh服务器配置,如何在Ubuntu 20.04 LTS上安装SSH服务器

    Terminal Linux Logo 在 步骤1.首先,通过apt在终端中运行以下以下命令,确保所有系统软件包都是最新的. sudo apt update sudo apt upgrade 步骤2. ...

  7. 入门系列之使用fail2ban防御SSH服务器的暴力破解攻击

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由SQL GM 发表于云+社区专栏 介绍 对于SSH服务的常见的攻击就是暴力破解攻击--远程攻击者通过不同的密码来无限次地进行登录尝试. ...

  8. windows sftp工具_将SSH服务器映射成Windows网络驱动器

    需要一款简便的ftp工具吗?这里为大家带来一款强大的ftp客户端工具,这款ExpanDrive mac版能够为将SSH服务器映射成Windows网络驱动器,方便大家的操作.这款软件还支持多种国外云盘, ...

  9. RHEL-5搭建SSH服务器

    Linux 远程登录服务:ssh ·SSH是标准的网络协议,可用于大多数UNIX操作系统,能够实现字符界面的远程登录管理,它默认使用22号端口,采用密文的形式在网络中传输数据,相对于通过明文传输的Te ...

最新文章

  1. linux的/etc/hosts的作用
  2. JZOJ 1980. 【2011集训队出题】Construct
  3. windows redis批量删除前缀的key_阿里官方Redis开发规范!
  4. stl list 删除元素_删除所有出现的元素,并从列表中删除一些特定的元素。 C ++ STL...
  5. Linux上对图片进行压缩
  6. CME比特币期货去年促成超1100万枚比特币交易量
  7. 数据库和缓存一致性分析
  8. 理解 JMeter 聚合报告(Aggregate Report)
  9. 拦截器(Interceptor)和过滤器(Filter)的区别
  10. 多元统计分析最短距离法_多元统计分析复习整理
  11. linux两个命令合并,linux合并命令
  12. PDF Expert for Mac最新免费激活码序列号安装下载教程详解
  13. 微服务架构如何进行解耦?
  14. redis中的save配置项
  15. 供应商寄售过程的实现
  16. html5调用手电筒,HTML5的模拟手电筒照明效果
  17. 2022年上半年总结——忙碌而有点忧伤的半年
  18. 李飞飞论战《未来简史》作者赫拉利!2019 年最精彩 AI 论战
  19. combox获取mysql_C# 查询mysql数据库并绑定至combox中
  20. 学习高等数学一学期对”高等”的感悟与体会

热门文章

  1. 利用badusb对用户进行木马远控
  2. 第四方支付如何盈利?
  3. Linux系统下收集ADU/IML/survey报告方法整理(需要系统中有psp包)
  4. 简单密码的登录-TELNET
  5. 车队管理全国产化电子元件推荐方案
  6. 高精度加、减、乘、除算法实现详解
  7. imx6ull移植mplayer
  8. 2021-05-11(80. 删除有序数组中的重复项 II)
  9. “您的外卖订单正在由机器人配送中”:探访送货机器人进楼宇
  10. 使用opencv进行角度测量