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

使用Hyper终端时NixOS Home-manager SSH配置权限异常问题

解决Home-manager生成SSH配置软链接的权限问题

问题原因

Home-manager默认会将.ssh/config生成为指向Nix Store的软链接,软链接本身权限为lrwxrwxrwx,不符合SSH对配置文件的安全要求(必须为600,即仅所有者可读可写)。部分终端(如gnome-shell、VS Code终端)的SSH客户端会跟随软链接检查目标文件权限,而Hyper终端的SSH环境直接检查软链接本身权限,因此触发报错Bad owner or permissions on /home/me/.ssh/config。

解决方案:通过Home-manager生成实际配置文件并设置权限

可以通过home.file模块覆盖默认的软链接,将Home-manager生成的SSH配置文件复制到用户目录,并设置正确的权限:

home-manager.users.me = { pkgs, ... }: {
  programs.ssh.enable = true;
  programs.ssh.matchBlocks = {
    fooServer = {
      port = 1022;
      hostname = "example.com";
      user = "me";
    };
  };

  # 手动创建.ssh/config文件,替代默认软链接
  home.file.".ssh/config" = {
    source = config.programs.ssh.configFile; # 引用Home-manager生成的配置文件
    mode = "0600"; # 设置符合SSH要求的权限
  };
};

验证方法

应用配置后,检查.ssh/config的权限:

ls -l ~/.ssh/config

应显示类似如下结果:

-rw------- 1 me users ... /home/me/.ssh/config

此时在Hyper终端中使用SSH即可正常连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 21:13:10