在GitHub中生成个人访问令牌后,是否有必要将其存储在机器本地的某个地方?
如果是,是否有首选的存储方式?
在GitHub中生成个人访问令牌后,是否有必要将其存储在机器本地的某个地方?
如果是,是否有首选的存储方式?
当前回答
我喜欢在存储库中对它们进行加密,并使用.envrc (https://direnv.net/)加载它们。
为了做到这一点,我使用ssh-vault来加密数据,使用我的ssh密钥,GitHub已经公开,例如:
echo MY_TOKEN="secret" | ssh-vault -u <github-user> create > my-encypted-vars.ssh
然后.envrc的内容看起来像这样:
echo "Enter ssh key password"
context=$(ssh-vault view $HOME/projects/my-encrypted.ssh | tail -n +2)
export ${context}
这将解密my-encrypted-vars中的数据。ssh文件,并设置MY_TOKEN到我的环境变量,每次我cd到项目目录。
通过这样做,令牌/变量被“安全地”存储,并且随时可以作为环境变量使用
其他回答
我喜欢在存储库中对它们进行加密,并使用.envrc (https://direnv.net/)加载它们。
为了做到这一点,我使用ssh-vault来加密数据,使用我的ssh密钥,GitHub已经公开,例如:
echo MY_TOKEN="secret" | ssh-vault -u <github-user> create > my-encypted-vars.ssh
然后.envrc的内容看起来像这样:
echo "Enter ssh key password"
context=$(ssh-vault view $HOME/projects/my-encrypted.ssh | tail -n +2)
export ${context}
这将解密my-encrypted-vars中的数据。ssh文件,并设置MY_TOKEN到我的环境变量,每次我cd到项目目录。
通过这样做,令牌/变量被“安全地”存储,并且随时可以作为环境变量使用
或者,您可以在主目录中创建一个~/.netrc文件,并将登录凭据保存在其中。
cat ~/.netrc
machine github.com login <login-id> password <token-password>
为了在缓存中存储您的凭据并避免每次执行git操作时都登录,请遵循以下步骤:
导航到本地存储库文件夹。 在当前文件夹的终端:git config——global——replace-all credential。辅助缓存 执行git push或git pull。 使用用户名和访问令牌登录(访问令牌是您的密码)。令牌可以在GitHub中设置,并可以访问repo,工作流,write:packages和delete:packages。 重复git push或任何git操作,你会发现从现在开始它不再要求登录凭据。
以我为例,在Ubuntu中,被接受的解决方案不能处理像这样的消息
Git: 'credential-manager'不是Git命令
但是店长却做得很好:
git config --global credential.helper store
使用git代替。基本上,将每个https://github调用替换为访问令牌+ https://
git config——global url."https://<username>:<github-token>@github.com/". insteadof "https://github.com/
现在每次调用github都会自动添加您的凭据。
我在这里找到了很好的答案。 更多关于git insteadOf的信息。