当前位置: 首页 > 知识库问答 >
问题:

我的Git个人访问令牌存储在哪里?

邹曦之
2023-03-14

在GitHub中生成个人访问令牌后,是否有必要将其存储在机器的本地某处?

如果是,是否有任何首选的存储方式?

共有3个答案

孔经武
2023-03-14

或者,您可以在主目录中创建一个 ~/.netrc 文件,并将您的登录凭据保存到该文件中。

cat ~/.netrc
machine github.com login <login-id> password <token-password>
於德馨
2023-03-14
匿名用户

在我的情况下,在Ubuntu中,接受的解决方案不适用于以下消息

git:“credential-manager”不是git命令

但是用< code>store代替< code>manager效果很好:

git config --global credential.helper store

西门经国
2023-03-14

密码的一半要点是(理想情况下)您记住它们并且系统对它们进行哈希处理,因此它们永远不会以纯文本形式存储在任何地方。
然而,GitHub的个人访问令牌系统似乎基本上迫使您以纯文本形式存储令牌?

首先,PAT(个人访问令牌)不是一个简单密码,而是:

  • 您可以生成多个时间(例如,每台需要访问GitHub存储库的机器一个时间)
  • 您可以随时撤销(从GitHub web界面),这使得PAT过时,即使它在其中一台机器上徘徊

这与您的密码不同,密码是您的帐户所独有的,如果不在您使用密码的任何地方修改密码,就无法轻松更改。

由于在命令行或API上使用Git通过HTTPS执行Git操作时,可以使用PAT代替密码,因此您可以使用git凭据助手来安全地缓存它。
例如,在Windows上,这将使用Windows凭据管理器,通过GCM-Git凭据管理器-适用于Windows、Mac或Linux:

git config --global credential.helper manager-core

第一次推送到存储库时,弹出窗口将询问您的凭据:用户名和您的PAT
,下次,它不会询问,并直接重复使用该PAT,该PAT仍安全地存储在您的凭据管理器中。

类似的想法适用于带有OSX钥匙串的Mac和带有GNOME钥匙圈的Linux(在2021年,它需要一个DBus会话和库秘密),但在2021年,GCM-Core涵盖了这些用例。
这个想法仍然是:将PAT存储在加密的凭据存储中。

如上所述,更现代的解决方案(2020年第四季度)是微软Git-Credential-Manager-Core

git config --global credential.helper manager-core

你需要它来安装git-凭据-管理器-核心下载它的最新版本,如gcmcore-linux_amd64.2.0.474.41365.deb

sudo dpkg -i <path-to-package>
git-credential-manager-core configure

尽管,正如Mekky Mayata在评论中指出的那样,在Linux上使用GCM(Git Credential Manager Core),您需要定义一个Git-config——全局凭据。credentialStore优先。

请参阅“Linux上的凭据商店”:

有四个选项用于存储Git凭据管理器(GCM)在Linux平台上管理的凭据:

    < Li > freedesktop . org Secret Service API < li>GPG/ 通过兼容文件 < li>Git的内置凭据缓存 < li >纯文本文件

默认情况下,GCM 未html" target="_blank">配置。
可以通过设置GCM_CREDENTIAL_STORE环境变量或凭据.credential存储 Git 配置设置来选择要使用的凭据存储。

正如agent18在评论中指出的那样,在安装libsecret-1-0libsecret1-dev是一个很好的第一步
但同样,这应该由凭据管理器核心包装。

 类似资料:
  • 如果是,是否有任何首选的存储方式?

  • 我正在尝试构建一个Spring Boot REST API,它将实现社交登录(Spotify)。成功登录Spotify后,我想将Spotify access_令牌存储在我生成的JWT令牌中,以便能够访问我的后端。我需要一个Spotify访问令牌,以便能够对Spotify进行API调用(几乎所有对我的应用程序的请求都需要调用Spotify API)。在JWT中存储外部服务的访问令牌是一种好做法吗?或

  • 我无法轻松决定如何从后端接收刷新令牌和访问令牌,以及将其存储在哪里。 我理解的认证过程如下。 XSS可以用cookies进行防御 我参考了许多文章,据说XSS将被cookie阻止,CSRF将被刷新令牌和访问令牌保护。 对于刷新令牌,它存储在webStorage中。 然而,为了防止XSS,在访问令牌的情况下,似乎应该使用cookie来保护它们(仅适用于Http),在刷新令牌的情况下,似乎应该将它们存

  • 我正在使用vue.js和vuex开发一个应用程序,它使用JWT令牌对JSON API服务器进行身份验证。所以我想知道存放JWT代币的最佳做法是什么? 如果我将其存储在vuex商店中,则页面刷新后它会丢失,因此用户需要再次登录,这不是很方便。 如果我将其存储在浏览器的本地存储中,它会在下次登录之前被弃用,然后假设身份验证令牌的组件会混淆。我不知道如何处理这个问题。 感谢你对此的暗示。

  • 我正在实现一个需要身份验证的REST服务。我正在使用JWT。 现在,Android应用程序在登录时发送一个请求,获得一个令牌,并且必须在每个后续请求的头中发送令牌。 我的问题是,如何存储令牌,或者我应该将其存储在哪里? 共享偏好 SQLite数据库 归档 最好的做法是什么?还是我完全错了?

  • 问题内容: 我们在公司网络外部的远程github服务器上运行着一个企业github,需要使用https代理进行克隆。我们不允许使用密码验证,因此ssh(由于代理问题而无法使用)或PAT。 在我的命令行上,命令 克隆存储库没有问题,大约需要5-10秒。 在Jenkins中,控制台输出显示“克隆到目录名”,然后有一个旋转的纺纱轮不断旋转,而这种旋转永远无法解决。 我正在执行壳脚本中运行此命令,因为gi