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

Ubuntu20.04 OpenSSH 8.2配置含子目录时ssh自动补全报错求助

报错原因

Ubuntu 20.04 自带的 SSH 自动补全脚本(属于 bash-completion 包)逻辑老旧,不会自动跳过 Include 指令匹配到的目录。你配置中第一行 Include config.d/* 会匹配到 config.d 下的 dir1、dir2、dir3 三个子目录,补全脚本尝试把目录当做文本配置文件读取解析,就触发了 sed/awk 的读目录错误。

解决方案

选以下任意一种调整即可:

方案1:删除顶层通配引用

删掉 ~/.ssh/config 里的第一行 Include config.d/*,只保留子目录层级的引用规则:

Include config.d/dir1/*
Include config.d/dir2/*
Include config.d/dir3/*

如果你的顶层 config.d 下还有直接存放的配置片段,把这些片段移动到任意子目录中即可。

方案2:给配置片段加统一后缀过滤

如果你需要保留顶层目录的配置片段,给所有 SSH 配置片段加统一后缀(比如 .conf),把所有引用规则修改为只匹配带后缀的文件,彻底避免匹配到目录:

# 仅匹配后缀为.conf的普通文件,不会匹配子目录
Include config.d/*.conf
Include config.d/dir1/*.conf
Include config.d/dir2/*.conf
Include config.d/dir3/*.conf

调整完成后执行 ssh -G remotevm 验证配置加载正常,再尝试 SSH 主机名补全即可恢复正常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:54:06