[解決済み】Gitのパーソナルアクセストークンをどこに保存するか?
質問
個人用アクセストークンを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つのオプションがあります。
- freedesktop.org シークレットサービス API
- GPG/
pass
互換ファイル- Git に組み込まれた クレデンシャルキャッシュ
- 平文ファイル
デフォルトでは、GCM Core には ではなく が設定されています。
どのクレデンシャルストアを使用するかはGCM_CREDENTIAL_STORE
環境変数、またはcredential.credentialStore
Gitのコンフィギュレーション設定。
が指摘するように
エージェント18
で
コメント
を使用しています。
git-credential-libsecret
をインストールした後
libsecret-1-0
と
libsecret-1-dev
は、最初の一歩として良いのではないでしょうか。
しかし、繰り返しになりますが、それは今すぐ
credential-manager-core
.
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Git, fatal: リモートエンドが予期せずハングアップしました。
-
[解決済み】fatal: 有効なオブジェクト名ではない: 'master'
-
[解決済み】ローカルに変更があるにもかかわらず、git pushが「すべて最新」と言う
-
[解決済み】マージが終了していません(MERGE_HEADは存在します)。
-
[解決済み] リモートから<branch name>とマージするように構成が指定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] 複数のgitコミットを元に戻すには?
-
[解決済み] Git pull - マージする前に移動または削除してください。
-
[解決済み] ssh-keygen' は内部コマンドまたは外部コマンドとして認識されません。
-
[解決済み] Git - Windowsで.netrcファイルを使用してユーザーとパスワードを保存する方法
-
[解決済み] gnome-keyringと統合してgitを使用する方法