yikyo
V2EX  ›  问与答

nixos flake 可以使用私有仓库吗

  •  
  •   yikyo · Jan 16 · 1504 views
    This topic created in 123 days ago, the information mentioned may be changed or developed.

    使用命令 nixos-rebuild switch --flake "git+ssh://github/user/nixos-config"

    各种方式都试过了,都无法访问仓库

    添加 --sudo 参数不行 添加 --use-remote-sudo 不行

    使用 NIX_CONFIG="access-tokens = github.com=ghp_xxx" 不行

    但是 ssh -T [email protected] 命令正常

    询问 gemini copilot deepseek ,都没结果

    是我姿势不对吧,有大佬能教一下吗

    Supplement 1  ·  Jan 16
    ——————————————————————————————————————————————————————————————————————————————
    已解决,感谢各位

    sudo NIX_CONFIG="access-tokens = github.com=ghp_xxx" nixos-rebuild switch --flake "github:owner/repo#home"
    10 replies    2026-01-19 23:18:21 +08:00
    vonfry
        1
    vonfry  
       Jan 16   ❤️ 1
    > NIX_CONFIG="access-tokens = github.com=ghp_xxx"
    您的 sudo 是否保留了 NIX_CONFIG 变量?

    > ssh -T [email protected]
    这是当前用户吧。你的 root 用户是否有这个 key ?
    yikyo
        2
    yikyo  
    OP
       Jan 16 via iPhone
    @vonfry 谢谢回复,参数—sudo 和—use-remote-sudo ,就是让当前用户访问 git 仓库,如果 root 有 key 反而不对了,nix_config 我再确认一下
    vonfry
        3
    vonfry  
       Jan 16   ❤️ 1
    @yikyo 刚刚阅读了一下源码,如果没有指定 keytype 相关的情况下,是用 ed25519 的 key ,你不会是 rsa 的 key 吧。https://github.com/NixOS/nix/blob/master/src/libfetchers/git.cc#L155
    yikyo
        4
    yikyo  
    OP
       Jan 16 via iPhone
    @vonfry 老哥用心了,我用的 ed25519
    vonfry
        5
    vonfry  
       Jan 16   ❤️ 1
    @vonfry #3 不好意思,这条说的不对,这个是构建请求时用的,而且是 flake lock 时的东西。
    另外,我发现你 github 前没写 user (应该是 git ),以及是不是应该写成 github.com
    ijk0
        6
    ijk0  
       Jan 16 via iPhone   ❤️ 1
    让 cc 或者其他 cli agent 来 debug 呢,我新机器在 cc 的帮助下安装了 nix , 没有 cc 怕是没法很快用上
    yikyo
        7
    yikyo  
    OP
       Jan 16
    @vonfry 解决了,感谢老哥,去翻了一下文档,按这个格式可以使用私有仓库

    sudo NIX_CONFIG="access-tokens = github.com=ghp_xxx" nixos-rebuild switch --flake "github:owner/repo#home"
    vonfry
        8
    vonfry  
       Jan 17
    @yikyo #7 你用 git+ssh 的话后面就是正常 url ,所以用户名和域名要有。用 github: 的话是走 github 特有的 fetcher ,就直接 owner/repo 就行。昨天一开始我也没看仔细,后来才注意到。。
    sxfscool
        9
    sxfscool  
       Jan 19
    为什么要用私有仓库呢,有需要加密的话就放到 agenix 里
    yikyo
        10
    yikyo  
    OP
       Jan 19
    @sxfscool 用 nixos 不久,很多概念不太懂,所以直接将密码等信息放到仓库里了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   986 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:46 · PVG 03:46 · LAX 12:46 · JFK 15:46
    ♥ Do have faith in what you're doing.