当前位置: 首页 > news >正文

使用ssh连接上开发板

最后我发现了问题,我忘记指定用户名了,在mobaXterm上左上角打开会话,点击ssh,然后输入要连接的开发板主机的ip地址,关键在这里,要指定你要连接的开发板的系统中存在的用户,因为通过ssh连接一个设备时通过 用户名@ip地址 决定的,这个用户名必须是你的开发板系统中存在,可以在系统中自己通过命令查看你的系统有几个用户名。

关键总结:SSH 连接必须使用系统中存在的用户


问题的核心:SSH 连接时使用的用户名必须在开发板系统中真实存在。以下是详细解释和后续操作建议:


1. SSH 连接的本质!!!

连接格式用户名@IP地址(例如 root@192.168.1.187)。
验证逻辑

  1. 系统检查用户名是否存在。
  2. 若用户存在,验证密码或密钥。
  3. 若用户不存在,直接拒绝(Access denied)。

2. 查看开发板用户清单

通过 cat /etc/passwd | grep /home/ 确认系统中存在的用户:

root:x:0:0:root:/home/root:/bin/sh         # 可登录用户(shell 为 /bin/sh)
mosquitto:x:993:989::/home/mosquitto:/bin/false  # 禁止登录(shell 为 /bin/false)

唯一可用用户root(其他用户如 Admin 不存在)。


3. 正确连接方式

在 MobaXterm 中创建 SSH 会话时:

  1. Remote host192.168.1.187
  2. Specify usernameroot(必须勾选并填写)

4. 如果仍提示 Access denied

即使使用 root 用户,仍需检查以下配置:

(1) Root 用户密码是否设置?

在开发板上执行

passwd root  # 设置或修改 root 密码
(2) Dropbear 是否允许密码登录?

• 编辑 /etc/default/dropbear,确保配置中 没有禁用密码登录的参数

# 错误配置示例(-s 表示禁用密码登录)
DROPBEAR_EXTRA_ARGS="-s -B"

# 正确配置(允许密码登录)
DROPBEAR_EXTRA_ARGS="-B"  # 允许空密码(仅测试环境使用)
# 或
DROPBEAR_EXTRA_ARGS=""    # 正常密码验证
(3) 重启 Dropbear 服务

• 终止现有进程并重启:

killall dropbear    # 停止服务
dropbear -F -E      # 前台运行(调试模式,观察日志)

5. 创建新用户(可选)

若想要使用其它用户,非 root 用户(如 user1),去创建用户:

useradd -m -s /bin/sh user1  # 创建用户并指定可登录的shell
passwd user1                 # 设置密码

连接时使用user1@192.168.1.187


6. 最终验证步骤

  1. MobaXterm 配置
    • 主机:192.168.1.187
    • 用户名:root
    • 密码:已设置的 root 密码。
  2. 点击连接,输入密码后应成功登录。

附:常见错误场景

场景现象解决方案
用户名不存在Access denied使用 cat /etc/passwd 检查用户
密码错误Access denied通过串口连接开发板,在开发板上用 passwd 重置密码再去用ssh使用密码连接
SSH 服务未运行Connection refused启动 dropbearopenssh
防火墙阻止 22 端口Connection timed out开放端口或关闭防火墙

通过以上步骤,应该能成功连接到开发板。如果仍有问题,可以再提供以下信息然后进行验证:
dropbear 运行时的完整日志(通过 dropbear -F -E 前台运行)。
• 开发板 /etc/shadow 文件中 root 用户的密码哈希(确认密码是否生效)。

相关文章:

  • Java基础:面向对象进阶(二)
  • 创维E900V22C/E900V22D_S905L3(B)_安卓9.0_指示灯正常_线刷固件包
  • Oracle数据库数据编程SQL<4.2 锁机制>
  • YOLO与SSD对比
  • 前端Uniapp接入UviewPlus详细教程!!!
  • 从零到1搭建流媒体服务器
  • C++基础系列【35】巧用assert
  • ARM Cortex-M用于控制中断和异常处理的寄存器:BASEPRI、PRIMASK 和 FAULTMASK
  • 图形渲染: tinyrenderer 实现笔记(Lesson 5 - 7)
  • 【算法学习计划】回溯 -- 二叉树中的深搜
  • WebRTC技术简介及应用场景
  • 解决Spring参数解析异常:Name for argument of type XXX not specified
  • Linux命令-xargs
  • 25.4.3学习总结【Java】
  • Ubuntu 安装 VLC
  • Vue2(15) 自定义事件学习笔记
  • VTK知识学习(50)- 交互与Widget(一)
  • vue3+ts+element-plus 开发一个页面模块的详细过程
  • CExercise04_1位运算符_2 定义一个函数判断给定的正整数是否为2的幂
  • 通过第k个最大元素深入浅出快排和堆排序