1. ホーム
  2. ギット

[解決済み】Gitのパーソナルアクセストークンをどこに保存するか?

2022-04-01 08:49:45

質問

個人用アクセストークンをGitHubで生成した後、マシン上のローカルな場所に保存する必要がありますか?

もしそうなら、それを保存する好ましい方法はありますか?

解決方法は?

<ブロッククオート

パスワードの重要性の半分は、(理想的には)あなたがパスワードを記憶し、システムがそれをハッシュ化することです。したがって、パスワードが平文でどこかに保存されることはありません。

しかし、GitHubの個人アクセストークンシステムは、基本的にプレーンテキストでトークンを保存することを強制しているようですね。

まず PAT(パーソナルアクセストークン) は、単純なパスワードではなく、それに相当するものです。

  • 複数回生成できる(例えば、GitHubのリポジトリにアクセスするマシンごとに1回)。
  • 以下のことが可能です。 取り消し を GitHub のウェブインターフェイスから実行すれば、たとえそのマシンに PAT が残っていたとしても、いつでも PAT を廃止することができます。

これは、パスワードとは異なり、アカウントに固有のものであり、簡単に変更することはできません。 また を変更する必要があります。


Git のコマンドラインや API で HTTPS 上の操作を行う際には、パスワードの代わりに PAT を使うことができるため、PAT の代わりに gitクレデンシャルヘルパー を使用して安全にキャッシュすることができます。

Windows では、例えば以下のようになります。 Windowsクレデンシャルマネージャ を、そして GCM-Core -- Git Credential Manager Core -- Windows、Mac、Linux用 :

git config --global credential.helper manager-core

初めてレポにプッシュするとき、ポップアップがあなたの認証情報を尋ねてきます: username あなたのPAT.

次回は、そのPATはクレデンシャルマネージャに安全に保存されたまま、直接再利用されます。

同じような考え方は MacでOSXキーチェーン で、Linux は GNOMEキーホルダー (2021年であれば はDBusセッションが必要で libsecret )が、2021年にはGCM-Coreがそれらのユースケースをカバーします。

アイデアはそのままです:PATを 暗号化された クレデンシャルストア


上記のように、よりモダンなソリューション(2020年第4四半期)は マイクロソフト Git-Credential-Manager-Core(ギットクレデンシャルマネージャーコア

git config --global credential.helper manager-core

をインストールする必要があります。 git-credential-manager-core をダウンロードし、その 最新リリース のように gcmcore-linux_amd64.2.0.474.41365.deb

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

Linuxサポートは現在(2021年)実装されていません。

ただし、Linux上のGCM(Git-Credential-Manager-Core)については、以下の通りです。 メッキー・マヤタ コメント を定義する必要があります。 git config --global credential.credentialStore を最初に作成します。

"をご覧ください。 Linuxにおけるクレデンシャルストア "です。

Linux プラットフォームで Git Credential Manager Core (GCM Core) が管理するクレデンシャルを保存するための4つのオプションがあります。

デフォルトでは、GCM Core には ではなく が設定されています。

どのクレデンシャルストアを使用するかは GCM_CREDENTIAL_STORE 環境変数、または credential.credentialStore Gitのコンフィギュレーション設定。

が指摘するように エージェント18 コメント を使用しています。 git-credential-libsecret をインストールした後 libsecret-1-0libsecret-1-dev は、最初の一歩として良いのではないでしょうか。

しかし、繰り返しになりますが、それは今すぐ credential-manager-core .