跳转至

在板端部署 Dropbear SSH 服务

文档介绍如何在板端部署轻量 SSH 服务端 Dropbear,使 AI 编程工具能通过 SSH 远程操作单板。

适用场景

适用于需要从宿主机通过 SSH 远程登录、传输文件或驱动编码智能体操作单板的场景。

所需条件:

  • 宿主机与单板网络互通

步骤

启用 Dropbear 并编译

任选以下一种方式启用 Dropbear:

方式一:直接编辑 app.defconfig

在目标案例的 app.defconfig 中添加:

CONFIG_OS_DROPBEAR=y

方式二:通过 menuconfig 交互式配置

bash scripts/build.sh menuconfig --target <BOARD> <APP_TYPE> <APP_NAME>

在 TUI 界面中进入 Open Source Librariesdropbear,按空格键选中,保存退出。

启用后运行构建:

bash scripts/build.sh build --target <BOARD> <APP_TYPE> <APP_NAME>

部署到单板

编译产物位于 _build/third_party/

二进制 路径
dropbear _build/third_party/sbin/dropbear
dbclient _build/third_party/bin/dbclient
dropbearkey _build/third_party/bin/dropbearkey
scp _build/third_party/bin/scp

创建主机密钥目录

在板端创建 Dropbear 读写主机密钥所需的目录:

mkdir -p /etc/dropbear

无论采用何种启动方式,必须预先创建 /etc/dropbear,否则 Dropbear 因无法读写主机密钥而启动失败。

生成密钥并启动

方式一:预先生成主机密钥后启动

先用 dropbearkey 生成 RSA 主机密钥,再用 -r 参数指定该密钥启动:

dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048
dropbear -r /etc/dropbear/dropbear_rsa_host_key -p 22

dropbearkey 仅用于生成密钥,执行完毕后可从板端删除。

方式二:首次连接时自动生成主机密钥

-R 参数使 Dropbear 在首次 SSH 连接时自动在 /etc/dropbear/ 下生成主机密钥,无需部署 dropbearkey

dropbear -R -p 22

该方式同样要求 /etc/dropbear 目录已存在,目录缺失则首次连接时生成失败。

Dropbear 默认以守护进程方式在后台运行,如需前台调试加 -F 参数。

配置开机自启

将启动命令写入板端 /etc/init.d/ 的启动脚本,使单板上电时自动启动 Dropbear,操作见配置应用开机自启

配置免密登录

宿主机端:

# 若 ~/.ssh/id_rsa.pub 不存在则生成
ssh-keygen -t rsa

记录 ~/.ssh/id_rsa.pub 的内容。

单板端:

mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys

将宿主机 ~/.ssh/id_rsa.pub 的内容写入单板 ~/.ssh/authorized_keys(多个宿主机账号访问时追加写入),并设置权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

完成配置后,SSH 登录单板不再要求输入密码。

验证

  1. 单板上电后执行 ps | grep dropbear,确认 Dropbear 进程运行
  2. 宿主机执行 ssh root@单板ip,成功登入且不要求输入密码
  3. 执行远程命令 ssh root@单板ip "uname -a",正确返回单板内核信息
  4. 执行文件传输命令,确认文件可双向传递