web-dev-qa-db-ja.com

Git http-資格情報を安全に記憶する

HTTP(S)経由でリモートリポジトリに接続するときにGitに資格情報を安全に記憶させる方法はありますか?

core.askpass で詳細に説明されているgit-configアプローチを試みて、外部スクリプトが資格情報を提供できるようにしました。うまく機能しますが、ユーザー名とパスワードは小さなシェルスクリプトにプレーンテキストで保存されます。

66
Johan Sjöberg

gitは、HTTPで実行するときにcURLを呼び出します。 .netrcファイルをユーザーのホームディレクトリに保存し、ユーザーにプライベートにします(Linuxでは0600)。

ファイルの内容は、リモートドメインごとのユーザー名とパスワードを提供します。

machine myRemoteServer
login myUserName
password s3cret

完全なサーバー側の設定については、 https://stackoverflow.com/questions/3947530/git-Push-fatal-failed/7177690#717769 を参照してください。LDAPサーバーへの呼び出しを簡単に含めることができます。

63
Eddie

(私が思うに)gitバージョン1.7.8以降、2011年12月2日から1)、gitはいわゆるcredentialsヘルパーをサポートします。

詳細については、gitcredentials(7)マンページを参照してください
(このマンページは、core.askpassがこれに適合する場所についても説明しています)。

デフォルトのgitインストールには2つのヘルパーが含まれています。

  • cache:詳細については、 git-credential-cache(1) を参照してください。

    資格情報を短時間メモリにキャッシュします。保存された資格情報がディスクに接触することはなく、設定可能なタイムアウト後に忘れられます。 ソケットを使用してデーモンと通信するため、Unix専用のソリューションであることに注意してください。

  • store:詳細については、 git-credential-store(1) を参照してください。

    資格情報をディスクに無期限に保存します。ファイルには、システム上の他のユーザーが読み取れないようにファイルシステムのアクセス権が設定されますが、暗号化またはその他の方法で保護されることはありません。 Eddie response.netrcソリューションと同じセキュリティ


KDEWallet(KDE)、 GNOME KeyringWindows Credential Store (これは Git for Windows )、MacOS Xキーチェーンなどに統合されました.


脚注:

1) Gitのセットアップ GitHubヘルプページには、

資格情報ヘルパーを使用するには、git1.7.10以降が必要です

50
Jakub Narębski

git 1.8. (2013年5月)以降、git toにencrypted .netrcを指定できるようになりましたつかいます:

A新しい読み取り専用資格情報ヘルパー(in contrib/credential/netrc/ )と対話する.netrc/.authinfoファイルが追加されました。

このスクリプトを使用すると、gpgで暗号化されたnetrcファイルを使用できるようになり、プレーンテキストファイルに資格情報が保存される問題を回避できます。

-f|--file AUTHFILE
specify netrc-style files.  

.gpg拡張子を持つファイルは、解析前にGPGによって復号化されます。
複数の-f引数は問題ありません。それらは順番に処理され、最初に一致したエントリがクレデンシャルヘルパープロトコルを介して返されます(以下を参照)。

-fオプションが指定されていない場合、ホームディレクトリ内の.authinfo.gpg.netrc.gpg.authinfo、および.netrcファイルがこの順序で使用されます。

この資格情報ヘルパーを有効にするには:

git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'

(Gitはヘルパー名の前に「git-credential-」を追加し、パスで検索することに注意してください。)


完全なステップバイステップの例を参照してください:
" https://github.comを使用するときにパスワードの入力をスキップする方法はありますか "。

14
VonC

安全なオプションは、公開鍵と秘密鍵のペアで通常のSSHを使用することです。

2
John

これはあなたのために働くかもしれません... http://samuel.kadolph.com/2011/03/store-your-git-https-passwords-in-your-os-x-keychain/

1
Clintm