16

有没有办法生成证书等,以便我的产品服务器可以从我的 github 存储库中提取,而无需我每次都进行身份验证?

4

4 回答 4

39

您可以创建访问令牌并将其用作用户名(无需密码)。

获得访问令牌后,克隆存储库:

git clone https://<your-access-token>@github.com/username/repo.git

然后,您无需每次都进行身份验证即可拉取。

这是最简单的方法,但会将令牌纯文本存储到 .git/config 为了提高安全性,您可以像往常一样设置密码缓存和克隆 https:

git clone https://github.com/username/repo.git

如果要删除服务器对存储库的访问权限,只需删除应用程序设置中的访问令牌即可。

我也更喜欢在部署环境中使用 https 而不是 ssh。有时我们没有足够的访问权限来处理 ssh,但即使在更便宜的托管服务上也可以使用 https 访问 github。

于 2013-10-31T10:54:26.117 回答
15

这就是部署密钥的用途。

那篇帮助文章解释了 GitHub 支持的部署身份验证方法,并提供了一些指导来帮助在它们之间做出决定。

以我有限的经验,部署 SSH 密钥可能是最简单的设置。

于 2013-10-31T09:21:13.360 回答
11

生成 ssh 密钥

cd ~/.ssh 
ssh-keygen -t rsa -C "your-email-address"
touch config

粘贴到配置中

 Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/YOUR_KEY

将公钥粘贴到 github 部署密钥设置

cat YOUR_KEY.pub

将远程从 http 设置为 ssh

git remote set-url origin ssh://git@github.com/USERNAME/REPOSITORY.git
于 2017-10-10T18:49:30.490 回答
2

我认为这可以通过使用凭证缓存和使用 .netrc 文件来完成。 请检查这个

于 2013-10-31T08:59:57.263 回答