HarmonyOS 鸿蒙Next MateBookPro 6.1 版本中配置 ~/.ssh/config 内容提示权限不足
HarmonyOS 鸿蒙Next MateBookPro 6.1 版本中配置 ~/.ssh/config 内容提示权限不足
在 ~/.ssh/config 中添加如下配置:
Host openclaw
HostName 101.**.**.24
User root
然后执行 ssh openclaw 汇报错如下信息:
Bad owner or permissions on /storage/Users/currentUser/.ssh/config
修改权限还是报错:
chmod 777 .ssh/config

更多关于HarmonyOS 鸿蒙Next MateBookPro 6.1 版本中配置 ~/.ssh/config 内容提示权限不足的实战教程也可以访问 https://www.itying.com/category-93-b0.html
收到,等工单结论即可。你这组现象已经把问题边界收得很清楚:ssh -F ~/ssh_config openclaw 成功,说明 SSH 配置和远端都没问题;同内容放进 ~/.ssh/config 失败,核心在默认配置文件路径的权限检查与当前 HarmonyOS PC 用户目录权限映射之间。
这段时间建议继续用 ssh -F ~/ssh_config openclaw 作为稳定绕过方案。如果 Git/脚本也要走同一份配置,可以临时用:
GIT_SSH_COMMAND=“ssh -F ~/ssh_config” git pull
或给常用连接加 alias。不要再把 .ssh/config 改成 777,OpenSSH 对默认配置文件会更严格拒绝。等工单反馈后,如果方便贴一下结论,也能帮助后面遇到 HiShell/OpenSSH 权限映射问题的开发者。
更多关于HarmonyOS 鸿蒙Next MateBookPro 6.1 版本中配置 ~/.ssh/config 内容提示权限不足的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
OK感谢您的帮助,等有后续我来贴出来,
尊敬的开发者,您好,
关于您的反馈的问题,
问题原因如下:
由于用户目录下文件属组固定为filemanager,与linux归属用户是不一致的,
且文件rwx权限修改范围为660 - 770,与ssh要求的权限不一致,
最终导致ssh读取config配置文件时识别到权限不合理从而返回失败。
问题解决方案:
通过-F指定的配置文件,ssh认为其是可信配置文件,便不再校验权限,从而避免上述问题发生。
推荐使用ssh -F ~/.ssh/config来指定配置文件。
如果还有问题,欢迎您继续反馈~
这个结果反而把问题边界确认得很清楚:ssh -F ~/ssh_config openclaw 能连上,说明 Host 配置本身、远端服务和 ssh 客户端基本都没问题;失败点集中在默认读取 /storage/Users/currentUser/.ssh/config 时的权限检查。
建议先把这个作为稳定绕过方案:
- 配置文件继续放在
~/ssh_config或其他非~/.ssh/config路径。 - 日常连接使用
ssh -F ~/ssh_config openclaw。 - 如果频繁使用,可以在 shell 配置里加别名,例如
alias ssh_openclaw='ssh -F ~/ssh_config openclaw';如果确实希望所有 ssh 都走这个配置,也可以用alias ssh='ssh -F ~/ssh_config',但后者会影响所有 ssh 调用,建议谨慎一点。
从你贴的现象看,同样内容放到 ~/.ssh/config 后失败,是因为 OpenSSH 对默认用户配置文件走了 strict modes 权限检查;而当前 HarmonyOS PC 的用户目录映射下,文件仍显示为 20001006:file_manager 且 group 可写,chmod 600 后也没有真正变成 -rw-------,所以会被判定为 Bad owner or permissions。这更像系统/终端文件系统权限映射与 OpenSSH 权限模型的兼容问题,不是 SSH 配置语法问题。
提工单时建议附上这组对比:ssh -F ~/ssh_config openclaw 成功、同内容放入 ~/.ssh/config 失败、chmod 600 后仍显示 -rw-rw----,以及 .ssh 目录仍带 file_manager 组或 setgid 位。这样研发更容易定位到权限映射层。
好的,我已提交工单,等待结果,感谢您的帮助,
这个反馈基本能确认不是常规 Linux 权限设置问题了,而是当前 HarmonyOS PC 用户目录映射和 OpenSSH 严格权限检查之间不兼容。既然 chmod 后仍是 drwxrws–x / -rw-rw----,继续改权限大概率无效。
可以先临时绕过默认 config:试一下 ssh -F /dev/null root@101.xx.xx.24;如果 /dev/null 不可用,就新建一个权限能真正变成 600 的空配置文件,例如 /tmp/ssh_config_empty,再执行 ssh -F /tmp/ssh_config_empty root@101.xx.xx.24。如果只是为了别名,也可以暂时不用 ~/.ssh/config。
工单里建议附上 stat ~/.ssh ~/.ssh/config、chmod 后权限不变化、id/chown/chgrp 不存在这些信息,便于定位到底是终端能力缺失还是文件系统权限映射问题。
HarmonyOS的分布式技术让我实现了跨设备的无缝协作,工作效率翻倍。
localhost ~ % ssh -F /dev/null root@101.48.7.24
root@101.48.7.24's password:
Welcome to Ubuntu 24.04.4 LTS
这个可以,没问题。
localhost ~ % vim /tmp/ssh_config
localhost ~ % cd /tmp
localhost /tmp % ls
ls: .: Permission denied
localhost /tmp % ls
ls: .: Permission denied
localhost /tmp % cd /
我发现在 /tmp 鸿蒙也是没有权限的
localhost / % sudo chmod -R 777 /tmp
chmod: chmod '/tmp' to 0777: Read-only file system
chmod: /tmp: Permission denied
localhost / %
tmp 居然是只读
然后我发现如果我自己新建的文件,就可以了
localhost ~ % vim ssh_config
localhost ~ % ssh -F ~/ssh_config root@101.48.7.24
root@101.478.7.24's password:
localhost ~ % ssh -F ~/ssh_config openclaw
root@101.48.7.24's password:
Welcome to Ubuntu 24.04.4 LTS
我自己新建的这个 ssh_config 文件如下:
```bash
-rw-rw---- 1 20001006 file_manager 49 2026-05-07 12:39 ssh_config
我再把配置信息写入到 .ssh/config 就会报错:
localhost ~ % vim ~/.ssh/config
localhost ~ % ssh openclaw
Bad owner or permissions on /storage/Users/currentUser/.ssh/config
你这次贴的结果能确认一件事:chmod 700 ~/.ssh 和 chmod 600 ~/.ssh/config 并没有把实际权限改成 OpenSSH 接受的状态。目录仍然是 drwxrws--x,文件仍然是 -rw-rw----,也就是 group 仍有写权限,目录还有 setgid 位,所以 OpenSSH 还是会报 Bad owner or permissions。
可以继续试一下:
id
stat ~/.ssh ~/.ssh/config
chmod g-s ~/.ssh
chmod u=rwx,go= ~/.ssh
chmod u=rw,go= ~/.ssh/config
ls -ld ~/.ssh
ls -l ~/.ssh/config
目标应是:
drwx------ ~/.ssh
-rw------- ~/.ssh/config
如果执行后仍然显示 20001006:file_manager 且 group write 去不掉,说明这个路径的文件系统/账号映射不是传统 Linux POSIX 权限行为,OpenSSH 的安全检查和 HarmonyOS PC 当前用户目录映射存在兼容问题。
临时绕过可以不用该 config,直接执行:
ssh root@101.48.9.57
或者把 config 放到一个权限能真正设置为 600 的私有目录,再用 ssh -F /path/to/config openclaw。如果仍无法修改权限,建议带上 id/stat/ls 输出反馈工单。
localhost ~ % id
zsh: command not found: id
localhost ~ % stat ~/.ssh ~/.ssh/config
File: /storage/Users/currentUser/.ssh
Size: 3440 Blocks: 15 IO Blocks: 512 directory
Device: 0h/0d Inode: 2305843009214033685 Links: 2 Device type: 0,0
Access: (2771/drwxrws--x) Uid: (20001006/20001006) Gid: ( 1006/file_manager)
Access: **
Modify: **
Change: **
File: /storage/Users/currentUser/.ssh/config
Size: 49 Blocks: 16 IO Blocks: 512 regular file
Device: 0h/0d Inode: 2305843009214021746 Links: 1 Device type: 0,0
Access: (0660/-rw-rw----) Uid: (20001006/20001006) Gid: ( 1006/file_manager)
Access: **
Modify: **
Change: **
localhost ~ % chmod g-s ~/.ssh
localhost ~ % chmod u=rwx,go= ~/.ssh
localhost ~ % chmod u=rw,go= .ssh/config
localhost ~ % ls -ld ~/.ssh
drwxrws--x 2 20001006 file_manager 3440 2026-05-05 23:47 ~/.ssh
localhost ~ % ls -l ~/.ssh/config
-rw-rw---- 1 20001006 file_manager
看样子仍是不行,我提一个工单吧,
这里不是简单把权限改大就能解决,OpenSSH 对 ~/.ssh/config 的权限检查很严格:config 文件不能被 group/other 写,.ssh 目录也不能过宽。你现在显示 -rwxrw----,group 仍有写权限,所以 ssh 仍会拒绝读取。
建议这样处理:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/config
ls -ld ~/.ssh
ls -l ~/.ssh/config
期望结果类似:
drwx------ ... .ssh
-rw------- ... config
另外,config 文件不需要可执行权限,所以不是 700,而是 600。如果改完后仍然显示 group 有写权限,需要继续确认当前文件系统是否支持标准 POSIX 权限,以及该文件 owner 是否就是当前终端用户。
localhost ~ % chmod 700 ~/.ssh
localhost ~ % chmod 600 ~/.ssh/config
localhost ~ % ls -ld ~/.ssh
drwxrws--x 2 20001006 file_manager 3440 2026-05-05 23:47 /storage/Users/currentUser/.ssh
localhost ~ % ls -l ~/.ssh/config
-rw-rw---- 1 20001006 file_manager 49 2026-05-05 23:47 /storage/Users/currentUser/.ssh/config
localhost ~ % cat ~/.ssh/config
Host openclaw
HostName 101.48.9.57
User root
localhost ~ % ssh openclaw
Bad owner or permissions on /storage/Users/currentUser/.ssh/config
localhost ~ %
我这个就有点奇怪了,另外您提到看一下 owner, 我看我的 owner 是20001006, group 是 file_manager 并不是我的用户,下边是 /etc/passwd 内容
file_manager:x:1006:1006:::/bin/false
shell:x:2000:2000:::/bin/false
感觉鸿蒙是不是不像 Linux 那样我登录的账号是谁,我就是谁。whoami 命令也没有,
应该是Bad owner了。777改成700。
.ssh下的都不要777。
localhost ~ % chmod 700 ~/.ssh/config localhost ~ %
localhost ~ %
localhost ~ % ls -al ~/.ssh/config -rwxrw---- 1 20001006 file_manager 49 2026-05-05 23:47 /storage/Users/currentUser/.ssh/config localhost ~ % ssh openclaw Bad owner or permissions on /storage/Users/currentUser/.ssh/config localhost ~ % 我修改完似乎还是这样,而且我改成 700, 好像还不是像 Linux 上的那种 rwx------,
问题解决了么?先改owner为自己用户 .ssh及子都要改。用户和权限修改顺序从父到子。
还是没有解决,就像 橙动创意 用户说的那样,似乎鸿蒙的路径的文件系统/账号映射不是传统 Linux POSIX 权限行为,他甚至连 chown chgrp 命令都没有
localhost ~ % chown
zsh: command not found: chown
localhost ~ % chgrp
zsh: command not found: chgrp
localhost ~ %
我去提个工单反馈一下,
在 HarmonyOS 鸿蒙 Next MateBookPro 6.1 中,~/.ssh/config 权限不足通常因文件或目录权限过高导致。请检查 ~/.ssh 目录权限应为 700,config 文件权限应为 600。若仍提示,可能涉及 SELinux 或文件挂载属性限制,需确认文件系统是否可写。
chmod 777 导致 config 文件权限太开放,OpenSSH 会直接拒绝。SSH 强制要求 ~/.ssh/config 权限为 600(仅属主可读写),~/.ssh 目录权限为 700。执行以下两条命令即可:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/config
之后 ssh openclaw 应恢复正常。

