ssh-copy-id 提示成功,但 Dropbear 仍无法免密登录

发布时间:2026/9/25 20:38:29

ssh-copy-id 提示成功,但 Dropbear 仍无法免密登录 一、问题现象开发服务器需要频繁通过 SSH、SCP 连接嵌入式板ssh rootXXX scp XXX rootXXX:/home/root/app/但每次都需要输入 root 密码使用很不方便执行公钥安装ssh-copy-id -i ~/.ssh/id_ed25519.pub rootXXX提示添加成功Number of key(s) added: 1但强制使用公钥测试时仍然失败ssh -o PasswordAuthenticationno root10.129.6.190结果为Permission denied (publickey,password)也就是说公钥看起来已经添加但板端没有接受。二、先理解免密登录原理~/.ssh/id_ed25519 私钥 ~/.ssh/id_ed25519.pub 公钥可以简单理解为私钥保存在开发服务器上的钥匙 公钥安装在目标设备上的锁目标设备将允许登录的公钥保存到~/.ssh/authorized_keys登录过程如下客户端发起连接 ↓ 客户端使用私钥签名 ↓ 服务端使用 authorized_keys 中的公钥验证 ↓ 验证成功允许免密登录私钥不会传到板端传过去的只有公钥。三、使用详细日志分析 SSH执行ssh -vvv -o BatchModeyes rootXXX true日志中出现Remote software version dropbear_2020.81这说明板端使用的不是常见的 OpenSSH Server而是嵌入式系统常用的 Dropbear。日志还显示Offering public key: /home2/XXX/.ssh/id_ed25519说明客户端确实找到了正确的私钥并向板端发送了对应公钥。随后出现Authentications that can continue: publickey,password Permission denied (publickey,password)问题已经缩小到板端板端收到公钥后没有认可。四、分析板端为什么拒绝公钥公钥没有写入 Dropbear 实际读取的文件。$HOME/.ssh权限不正确。标准 Dropbear通常读取$HOME/.ssh/authorized_keys但部分厂商定制版本可能读取/etc/dropbear检查公钥被写到了哪里检查两个可能的位置for file in \ /home/root/.ssh/authorized_keys \ /etc/dropbear/authorized_keys do if [ -f $file ]; then echo 文件: $file ls -l $file awk {print NR, $1} $file fi done实验发现/home/root/.ssh/authorized_keys只有旧的RSA公钥 /etc/dropbear/authorized_keys包含新安装的ED25519公钥也就是说ssh-copy-id虽然提示成功但把公钥写到了/etc/dropbear/authorized_keys定位 ssh-copy-id 的处理逻辑grep -n dropbear /usr/bin/ssh-copy-id本机 OpenSSH 8.9p1 的ssh-copy-id包含类似逻辑case $REMOTE_VERSION in dropbear*) installkeys_sh /etc/dropbear/authorized_keys esac它检测到远端是 Dropbear 后默认将公钥写入/etc/dropbear/authorized_keys但当前 Yocto 板的 Dropbear 实际读取/home/root/.ssh/authorized_keys两者路径不一致正是问题根因。五、解决方案将公钥安装到正确位置在开发服务器执行这个脚本 install-ssh-key.sh#!/bin/sh set -eu if [ $# -lt 1 ] || [ $# -gt 2 ]; then echo 用法: $0 用户IP [公钥文件] 2 exit 2 fi TARGET$1 PUBLIC_KEY_FILE${2:-$HOME/.ssh/id_ed25519.pub} PRIVATE_KEY_FILE${PUBLIC_KEY_FILE%.pub} if [ ! -f $PUBLIC_KEY_FILE ]; then echo 找不到公钥: $PUBLIC_KEY_FILE 2 exit 1 fi if [ ! -f $PRIVATE_KEY_FILE ]; then echo 找不到对应私钥: $PRIVATE_KEY_FILE 2 exit 1 fi echo 正在给 $TARGET 安装公钥如有提示请输入该目标当前的登录密码。 sed -n 1p $PUBLIC_KEY_FILE | ssh -o StrictHostKeyCheckingaccept-new $TARGET set -eu IFS read -r public_key remote_user$(id -un) user_home$(awk -F: -v user$remote_user \$1 user { print $6; exit }\ /etc/passwd) if [ -z $user_home ]; then user_home${HOME:-} fi case $user_home in /*) ;; *) echo 无法确定远端用户家目录 2 exit 1 ;; esac mkdir -p $user_home/.ssh chmod 700 $user_home/.ssh touch $user_home/.ssh/authorized_keys grep -Fqx $public_key $user_home/.ssh/authorized_keys 2/dev/null || \ printf %s\n $public_key $user_home/.ssh/authorized_keys chmod 600 $user_home/.ssh/authorized_keys chmod go-w $user_home 2/dev/null || true echo 正在验证免密登录... if ssh -o BatchModeyes -o PasswordAuthenticationno \ -o IdentitiesOnlyyes -i $PRIVATE_KEY_FILE $TARGET true; then echo 成功: $TARGET 已可免密登录 else echo 失败: 公钥已写入但远端 SSH 服务仍未接受请检查远端 SSH 配置。 2 exit 1 fi使用方法/home2/renmaoquan/install-ssh-key.sh rootXXX脚本会自动查找远端用户的真实家目录。写入/home/root/.ssh/authorized_keys。保留已有公钥避免重复添加。设置正确的700/600权限。安装后自动验证免密登录。不再写入无效的/etc/dropbear/authorized_keys。六、验证实际生效位置强制关闭密码认证ssh -o ControlPathnone \ -o IdentitiesOnlyyes \ -i ~/.ssh/id_ed25519 \ -o PasswordAuthenticationno \ rootBOARD_IP登录成功后临时移走错误位置的文件mv /etc/dropbear/authorized_keys \ /etc/dropbear/authorized_keys.test-disabled重新建立全新 SSH 连接仍然可以登录证明实际生效的是/home/root/.ssh/authorized_keys确认无误后再删除临时文件rm /etc/dropbear/authorized_keys.test-disabled七、结论ssh-copy-id检测到Dropbear ↓ 公钥写入/etc/dropbear/authorized_keys ↓ Yocto板实际读取/home/root/.ssh/authorized_keys ↓ 命令提示添加成功但公钥认证失败解决方法是绕过当前ssh-copy-id的 Dropbear路径判断将公钥安装到板端用户真实的$HOME/.ssh/authorized_keys
延伸阅读

更多相关文章

2026/9/25 20:38:29

B树如何优化磁盘IO:从原理到工程实践全解析

前几天处理一份数据库慢查询时,系统日志里蹦出一条磁盘IO重试记录:逻辑块地址0x11d40360处重试IO操作。那条查询走的是主键索引,理论上是三层B树,最多三次磁盘IO就能拿到数据,实际却卡了快两秒。问题最后查出来出在硬件…

2026/9/25 20:38:29

2026年10款靠谱降AI率平台推荐:论文AIGC检测轻松过关

随着知网、维普、万方等主流学术平台对AIGC检测标准不断升级,论文通过率面临严峻挑战。选择一款高效的降AI工具已成为关键突破口。本文将实测对比10款主流工具,为读者提供精准的解决方案参考。为什么需要降 AI 率工具? 2026 年,各…

2026/9/25 21:18:31

Kettle循环取结果集传参:跨转换数据管道实战

简介:这份资源面向使用Kettle(Pentaho Data Integration)进行数据集成开发的工程师,聚焦「循环获取结果集并传入转换」这一典型场景,帮助解决跨转换传递变量、按行迭代处理数据的实际问题。资源包共1个文件&#xff0c…

2026/9/25 21:18:30

用Vibeware把MCP接入MiXCopilot:给AI配一个专属记忆模块

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 21:18:30

Atlas 300V 24G实战:昇腾NPU上部署YOLO目标检测全流程指南

“Atlas”这名字在深度学习部署圈子里,其实是个挺容易让人犯迷糊的词。有朋友以为是数据库,有朋友以为是漫画里的机器人,还有人第一反应是那个健身器材地垫。但只要你最近在搞目标检测、想在边缘设备或者服务器上跑 YOLO 推理,又恰…

2026/9/25 21:13:30

链表从入门到精通:单链表操作、逆序与面试考点全解析

聊链表之前,我先说个观察:数据结构课上,链表几乎是所有人的第一道坎,但也是性价比最高的一道坎。学会了链表,指针、内存、递归这些概念会跟着通掉一半;学不会,后面二叉树、图、哈希表全都会受影…

2026/9/25 21:00:17

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/25 20:59:52

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/25 0:02:35

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:02:35

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:02:35

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 20:55:38

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/25 18:41:36

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/25 18:34:56

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑