Git の git credential-cache コマンド:わかりやすい解説
Git の git credential-cache
コマンド:わかりやすい解説
git credential-cache
コマンドは、Git がリモートリポジトリへのアクセスを認証するために使用する 資格情報 を管理するためのツールです。このコマンドを使用すると、ユーザー名とパスワードを安全に保存し、毎回入力する必要をなくすことができます。
3つのモード
git credential-cache
には、資格情報を保存する方法を制御する 3 つのモードがあります。
- cache: デフォルトモード。認証情報はメモリにキャッシュされ、次回の Git 操作まで保存されます。コンピュータを再起動すると消去されます。
- store: 認証情報は
git-credentials
ファイルに暗号化されて保存されます。このファイルはデフォルトで~/.git-credentials
にあります。 - osxkeychain: (macOS のみ) 認証情報は macOS のキーチェーンに保存されます。
それぞれのモードの利点と欠点
- cache: 最も安全なモードではありませんが、最も使いやすいモードです。
- store: 資格情報は暗号化されて保存されるため、cache モードよりも安全です。ただし、ファイルを手動で編集する必要があるため、管理が少し複雑になります。
- osxkeychain: 他のモードよりも使いやすい場合がありますが、macOS のみで使用できます。
どのモードを選択すべきか?
一般的には、cache モード をお勧めします。これは、使いやすく、セキュリティも比較的良好です。ただし、機密性の高い情報にアクセスする場合は、store モード または osxkeychain モード を検討する必要があります。
git credential-cache
コマンドの使用例
以下の例では、cache モード
で GitHub リポジトリへの認証情報を保存する方法を示します。
git credential-cache store https://github.com
このコマンドを実行すると、Git はユーザー名とパスワード入力を求め、それらを安全に保存します。次回からそのリポジトリにアクセスするときは、資格情報を入力する必要はありません。
git credential-cache
コマンドは、Git 2.1 以降で使用できます。- 資格情報は暗号化されていますが、完全に安全とは限りません。機密性の高い情報にアクセスする場合は、追加のセキュリティ対策を検討してください。
- Windows ユーザーは、資格情報マネージャーを使用して Git 資格情報を保存することもできます。
git credential-cache store https://github.com
保存されている認証情報一覧を表示する
git credential-cache list
このコマンドを実行すると、保存されているすべての認証情報が表示されます。出力例は以下の通りです。
protocol host username
https://github.com my-username
特定のホストの認証情報を削除する
git credential-cache erase https://github.com
このコマンドを実行すると、https://github.com
の認証情報が削除されます。
すべての認証情報を削除する
git credential-cache erase
このコマンドを実行すると、すべての認証情報が削除されます。
注意事項
- 上記のコードを実行する前に、
git credential-cache
コマンドがシステムにインストールされていることを確認してください。
Git Credential Cache の代替手段
Git Credential Cache は、Git がリモートリポジトリへのアクセスを認証するために使用する資格情報を管理するための便利なツールですが、代替手段もいくつか存在します。それぞれの方法には長所と短所があるため、自分のニーズに合ったものを選択することが重要です。
代替手段
環境変数:
環境変数を使用して、ユーザー名とパスワードを保存することができます。これは、最も簡単な方法ですが、セキュリティ上最も危険な方法でもあります。環境変数は誰でも簡単にアクセスできるため、資格情報が漏洩するリスクが高くなります。
export GIT_CREDENTIAL_USERNAME="my_username" export GIT_CREDENTIAL_PASSWORD="my_password"
Netrc ファイル:
Netrc ファイルは、ユーザー名とパスワードをプレーンテキストで保存するファイルです。このファイルは、
~/.netrc
または~/.git-netrc
に配置する必要があります。Netrc ファイルは、環境変数よりも安全ですが、依然として比較的脆弱です。machine github.com login my_username password my_password
SSH キー:
サードパーティ製の認証マネージャー:
Git Credential Helper:
それぞれの方法の比較
方法 | 長所 | 短所 |
---|---|---|
環境変数 | 簡単 | 最も危険 |
Netrc ファイル | 環境変数よりも安全 | 依然として脆弱 |
SSH キー | 最も安全 | セットアップが複雑 |
サードパーティ製の認証マネージャー | 安全で使いやすい | サードパーティ製のサービスに依存する |
Git Credential Helper | 柔軟性と制御性 | セットアップと管理が複雑 |