3.14.3 Git 身份验证

原文链接: https://docs.astral.sh/uv/concepts/authentication/git/

3.14.3 Git 身份验证

uv 允许通过 SSH 或 HTTP 身份验证从私有 Git 仓库安装包。

SSH 身份验证

要使用 SSH 密钥进行身份验证,请使用 ssh:// 协议:

  • git+ssh://git@<hostname>/...(例如 git+ssh://git@github.com/astral-sh/uv)
  • git+ssh://git@<host>/...(例如 git+ssh://git@github.com-key-2/astral-sh/uv)

SSH 身份验证要求使用用户名 git。

关于如何配置 SSH 的更多细节,请参阅 GitHub SSH 文档。

HTTP 身份验证

要使用密码或令牌进行 HTTP Basic 身份验证:

  • git+https://<user>:<token>@<hostname>/...(例如 git+https://git:github_pat_asdf@github.com/astral-sh/uv)
  • git+https://<token>@<hostname>/...(例如 git+https://github_pat_asdf@github.com/astral-sh/uv)
  • git+https://<user>@<hostname>/...(例如 git+https://git@github.com/astral-sh/uv)

注意

使用 GitHub 个人访问令牌时,用户名是任意的。GitHub 不允许在这类 URL 中使用你的账号名和密码,不过其他主机可能允许。

如果 URL 中没有凭据但需要身份验证,uv 会查询 Git 凭据助手。

凭据的持久化

使用 uv add 时,uv 不会把 Git 凭据持久化到 pyproject.toml 或 uv.lock。这些文件常被纳入源码控制和分发,因此把凭据写入其中通常是不安全的。

如果你配置了 Git 凭据助手,凭据可能会被自动持久化,从而使后续拉取该依赖成功。不过,如果你没有 Git 凭据助手,或者项目在没有预置凭据的机器上使用,uv 会无法拉取该依赖。

你可以通过给 uv add 传入 --raw 选项强制 uv 持久化 Git 凭据。不过我们强烈建议改而配置凭据助手。

Git 凭据助手

Git 凭据助手用于存储和获取 Git 凭据。进一步了解请参阅 Git 文档。

如果你使用 GitHub,配置凭据助手最简单的方式是安装 gh CLI 并使用:

1
$ gh auth login

更多细节请参阅 gh auth login 文档。

注意

交互式使用 gh auth login 时,凭据助手会自动配置。但像 uv 的 GitHub Actions 指南那样使用 gh auth login --with-token 时,之后还需要运行 gh auth setup-git 命令来配置凭据助手。

最后修改 September 25, 2026: 更新 (221c74c33)