AuthorizedKeysFile %h/.ssh/authorized_keys 是 OpenSSH 默认密钥路径,%h 指用户主目录;需显式配置的情形包括:该行被注释或误改、家目录非标准、安全策略要求显式声明、调试公钥失效问题;配置后须确保家目录、.ssh 目录及 authorized_keys 文件权限分别为 go-w、700、600。

理解 %h 和默认行为
%h 是 OpenSSH 预定义的变量,代表当前登录用户的主目录(即 ~)。所以 AuthorizedKeysFile %h/.ssh/authorized_keys 等价于 /home/username/.ssh/authorized_keys(对普通用户)或 /root/.ssh/authorized_keys(对 root)。这个路径本身就是标准规范,多数发行版安装后已默认启用且未注释。
何时需要显式配置这一项
以下情况建议在 /etc/ssh/sshd_config 中显式写出并确认该行:
- 你发现配置文件中该行被注释(以
#开头),或值被误改成了其他路径(如.ssh/authorized_keys缺少%h/) - 你的系统使用了非标准家目录结构(例如通过 LDAP 或容器挂载,家目录不在
/home下),需确保路径能准确展开为真实路径 - 安全策略要求所有关键路径显式声明,避免依赖隐式默认值
- 你正在调试公钥不生效问题,想排除路径解析歧义
正确配置步骤
编辑服务端 SSH 主配置:
- 用 root 权限打开配置文件:
sudo nano /etc/ssh/sshd_config - 查找
AuthorizedKeysFile行;若不存在,新增一行;若存在但被注释或值异常,改为:
AuthorizedKeysFile %h/.ssh/authorized_keys
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
注意:
– 不要加引号
– 不要写成 %h/.ssh/authorized_keys %h/.ssh/authorized_keys2 等多路径(除非你真有二级备选需求)
– 确保同一文件中没有其他 AuthorizedKeysFile 行,避免覆盖
配套权限与路径检查
仅设对路径不够,SSHD 会严格校验实际文件结构和权限:
- 目标用户家目录不能被组或其他人写(
chmod go-w ~) -
~/.ssh目录权限必须是700(drwx------) -
~/.ssh/authorized_keys文件权限必须是600(-rw-------) - 确认该文件确实存在,且包含你上传的公钥(一行一条,无换行或空格错位)
可一键检查并修复(以 user 为例):
sudo -u user sh -c 'mkdir -p ~/.ssh && chmod 700 ~/.ssh && touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys'

















