惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
Last Week in AI
Last Week in AI
月光博客
月光博客
D
DataBreaches.Net
WordPress大学
WordPress大学
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
U
Unit 42
Recent Announcements
Recent Announcements
宝玉的分享
宝玉的分享
MyScale Blog
MyScale Blog
C
Check Point Blog
F
Fortinet All Blogs
B
Blog
小众软件
小众软件
Vercel News
Vercel News
罗磊的独立博客
有赞技术团队
有赞技术团队

博客园_首页

Linux实操--组管理、权限管理和定时任务 Java + EasyExcel 实现单个接口导出多个Excel Mem0 源码解析系列(二):提示词工程的深度剖析 Openclaw TaskFlow究竟是什么?和普通Skill技能有什么区别 博文阅读密码验证 - 博客园 嘉立创开源:应该是全网MicroPython教程最多的开发板 Hermes Agent 集成实践:从协议到生产 2026年AI编程工具横评:Cursor、Codex、Claude Code、Zed、Windsurf Java程序员必看的RAG入门教程 2026 AI效率神器:Superpowers + Claude Code 保姆级教程 本地大模型部署全攻略:从 0 到 1 玩转 Ollama 【从0到1构建一个ClaudeAgent】内存管理-上下文压缩 .NET 高级开发 | 设计、实现一个事件总线框架 电子小白入门之NE555 3. WorkBuddy:隐藏玩法,一键召唤专家,让 AI 以"专家身份"给你干活 和AI一起搞事情#3:Claude Teammate 游戏开发翻车实录 【OpenClaw】通过 Nanobot 源码学习架构---(7)Memory C# .NET 周刊|2026年3月3期 我在 Debian 11 上把 K8s 单机搭起来了,过程没你想的那么顺(/opt 目录版) 深度学习进阶(七)Data-efficient Image Transformer CLI+Skill搭建浏览器AI自动化框架,告别一切重复枯燥任务 告别Token账单无底洞:OpenClaw本地部署,重塑企业数据主权的唯一解 FastAPI+Vue:文件分片上传+秒传+断点续传,这坑我帮你踩平了! SBTI 爆火后,我做了个程序员版的 CBTI。。已开源 + 附开发过程 多模态检索开始进入工程期:用 Sentence Transformers 搭建可落地的 Multimodal RAG 100多行代码实现一个最简单的Agent(用ReAct) Claude Code 通关手册(八):推荐 5 个 Hooks,代码质量提升 3 倍 老板:“有人截图了!”。安全部门:“收到,马上查暗水印!” - why技术 技术之外,皆是人间 C#/.NET/.NET Core技术前沿周刊 | 第 69 期(2026年4.01-4.12)
RV1126b只读bulidroot文件系统支持ssh功能
假-正-经 · 2026-05-05 · via 博客园_首页

  内核版本:6.1

    系统:只读bulidroot

1、遇到问题

  使用rk原厂sdk包 ,实现rv1126b适配的快启,bulidroot文件系统为增强型只读的,开启ssh功能无法生成私钥 ,导致功能异常。报错截图如下所示:

image

2、解决办法

2.1 menuconfig启动构建时生成密钥

进入 Target packages -> Networking applications -> openssh

image

 选择后保存,可以整体编译或者局部编译openssh

make menuconfig

make savedefconfig
//保存并重新编译
make openssh-rebuild

2.2 配置必要的运行时目录

  • 构建时修改:在 Buildroot 中,将该文件的修改放在 board/<yourcompany>/<yourproject>/rootfs-overlay/etc/ssh/sshd_config 路径下。这样它会自动覆盖打包进镜像。
  • 确认overlay路径:进入System configuration --->Root filesystem overlay directories   

image

fs-overlay/
            └── etc/
                ├── ssh/
                │   └── sshd_config      # SSH 主配置文件
                └── init.d/
                    ├── S40sshd_setup    # SSH 环境设置脚本

以上为整理配置结构,需要先新建对应目录,使用命令如下:

mkdir -p fs-overlay/etc/ssh
mkdir -p fs-overlay/etc/init.d

2.2.1 配置sshd_config文件

 vim  sshd_config

# OpenSSH精简配置 - 兼容嵌入式系统
Port 22
AddressFamily inet
ListenAddress 0.0.0.0

# 主机密钥路径
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

# 认证设置
PermitRootLogin yes
PasswordAuthentication yes
PubkeyAuthentication yes
PermitEmptyPasswords no

# 禁用不支持的功能
# PrintLastLog no    # 注释掉,旧版本不支持
# UsePAM no          # 注释掉,Buildroot通常不启用PAM
ChallengeResponseAuthentication no
UsePrivilegeSeparation yes

# 日志
SyslogFacility AUTH
LogLevel INFO

# 客户端保活
ClientAliveInterval 30
ClientAliveCountMax 3

# 禁用不必要功能
X11Forwarding no
PrintMotd no

# 子系统
Subsystem sftp /usr/libexec/sftp-server

# 性能优化
UseDNS no
Compression delayed

2.2.2 创建启动脚本S40sshd_setup

vim  S40sshd_setup
chmod +x  S40sshd_setup
#!/bin/sh
# S40sshd_setup - 在SSH服务启动前设置环境

case "$1" in
  start)
    echo "Setting up SSH environment (before sshd starts)..."

    # 1. 创建必需目录(必须在ssh服务启动前完成)

    # 2. 检查主机密钥是否存在
    echo "Checking SSH host keys..."
    if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then
        echo "ERROR: SSH host keys not found in /etc/ssh/"
        echo "Make sure 'install server keys' is enabled in Buildroot"
        # 不要尝试生成密钥,因为文件系统只读
    else
        echo "SSH host keys found, setting permissions..."
        # 设置正确的权限
        chmod 600 /etc/ssh/ssh_host_*_key 2>/dev/null || true
        chmod 644 /etc/ssh/ssh_host_*_key.pub 2>/dev/null || true
        chmod 755 /etc/ssh 2>/dev/null || true
    fi

    # 3. 确保运行时目录存在
    mkdir -p /var/run/sshd
    mkdir -p /var/lock/subsys

    echo "SSH environment setup complete."
    ;;
  stop)
    # 停止时无需特别操作
    ;;
  *)
    echo "Usage: $0 {start|stop}"
    exit 1
    ;;
esac

exit 0
~     

以上配置好后,需要编译打包进文件系统

./build.sh rootfs
./build.sh firmware

3、调试验证

编译后的系统烧写到板卡上,查看启动log或者使用ps查看进程情况

image

检查密钥
ls -la /etc/ssh/
hexdump -C /etc/ssh/ssh_host_rsa_key | head -5

image

使用winscp客户端验证,输入自己设置的用户名和密码

image