You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 18.04 Odroid-XU4 SSH连接报错/bin/bash缺失问题排查与解决

SSH连接提示/bin/bash: No such file or directory的排查与解决(Odroid-XU4 Ubuntu 18.04)

结合你的设备环境和遇到的问题,这个报错是SSH完成身份认证后,尝试启动登录shell时找不到对应可执行文件导致的。下面是具体的排查方向和解决步骤:

一、检查bash二进制文件是否存在或损坏

首先通过本地控制台(比如接HDMI显示器+键鼠)登录设备,先确认bash本身是否正常:

  1. 执行命令查看bash文件状态:
    ls -l /bin/bash
    
    • 如果输出显示文件不存在,说明bash被误删或损坏,重新安装即可:
      apt update && apt install --reinstall bash
      
    • 如果文件存在,但权限不是-rwxr-xr-x(所有者root,组root),修复权限:
      chmod 755 /bin/bash
      

二、确认用户默认shell配置正确

从你的sshd_config里PermitRootLogin yes来看,你大概率用root用户登录。检查/etc/passwd里的shell配置:

cat /etc/passwd | grep root

正常输出应该类似:

root:x:0:0:root:/root:/bin/bash

如果最后一段不是/bin/bash(比如改成了不存在的路径),执行命令修改默认shell:

usermod -s /bin/bash root

三、排查ChrootDirectory的影响(关键排查点)

看你的sshd_config最后有一段配置:

Match Group sftp_users
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /home

如果你的登录用户(比如root)属于sftp_users组,那么SSH连接时会被chroot到/home目录。此时系统会在/home/bin/bash路径下寻找shell,而非原来的/bin/bash——如果/home目录下没有这个路径,就会触发报错。

解决方法二选一:

  1. 将用户移出sftp_users组(如果不需要该组的chroot权限):
    gpasswd -d root sftp_users
    
    然后重启sshd服务:
    systemctl restart sshd
    
  2. 若需要保留chroot功能,在/home下搭建必要的shell环境:
    • 创建对应的目录结构:
      mkdir -p /home/bin /home/lib /home/lib64
      
    • 复制bash和依赖库到chroot目录:
      cp /bin/bash /home/bin/
      ldd /bin/bash | grep -o '/lib.*\.[0-9]' | xargs -I {} cp {} /home/{}
      
    完成后重启sshd,再尝试连接。

四、检查文件系统是否损坏

如果以上步骤都无效,可能是根分区文件系统损坏导致无法读取/bin/bash:

  1. 进入单用户模式(Odroid-XU4开机时按任意键进入U-boot菜单,选择单用户模式)
  2. 执行文件系统检查(注意:Odroid-XU4根分区通常为/dev/mmcblk0p2,若你的分区不同请替换):
    fsck /dev/mmcblk0p2
    
  3. 修复完成后重启设备。

内容的提问来源于stack exchange,提问作者Taki Eddine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 00:03:11