毎回、プロンプトにユーザー名とパスワードを入力せずに、 GitExtension に自動的にプッシュアンドプルを使用したい。
では、どうすれば _ git _ に自分の認証情報を保存できますか?
実行する
git config credential.helper store
それから
git pull
ユーザー名とパスワードを入力してください。これらの詳細は後で記憶されます。認証情報はディスク上のファイルに保存され、ディスクのアクセス許可は「ユーザーのみが読み取り/書き込み可能」ですが、プレーンテキストのままです。
後でパスワードを変更したい場合
git pull
失敗したので、失敗するでしょう、それは~/.git-credentials
ファイルから問題のユーザー+パスワードを削除します。
git pull
新しいパスワードを入力すると、以前と同じように機能します。
git config
を使用して、gitで認証情報の保存を有効にすることができます。
git config --global credential.helper store
このコマンドを実行するとき、リモートリポジトリから最初にプルまたはプッシュするときに、ユーザー名とパスワードについて尋ねられます。
その後、リモートリポジトリとの通信のために、ユーザー名とパスワードを入力する必要はありません。
格納形式はプレーンテキストで格納された.git-credentials
ファイルです。
また、git config credential.helper
には他のヘルパー、すなわちメモリキャッシュを使うことができます。
git config credential.helper cache <timout>
これはオプションのtimeout parameter
を取り、そのデーモンが実行される期間とそのdefault
値が900 seconds (15 minutes).
であることを決定します。
_ warning _ :この方法を使うと、あなたのgitアカウントのパスワードはplaintext
フォーマットで、global .gitconfig file
で保存されます。例えば、Linuxでは/home/[username]/.gitconfig
となります。
これが望ましくない場合は、代わりにアカウントにssh key
を使用してください。
ターミナルで、次のように入力します。
# Set git to use the credential memory cache
git config --global credential.helper cache
デフォルトでは、Gitは15分間あなたのパスワードをキャッシュします。
デフォルトのパスワードキャッシュタイムアウトを変更するには、次のように入力します。
# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper 'cache --timeout=3600'
から GitHubヘルプ
あなたのユーザー名とパスワードをこのように設定することができます。
git config --global user.name "your username"
git config --global user.password "your password"
~/.gitconfig
ファイルを store your credentials に編集できます。
Sudo nano ~/.gitconfig
どちらがもう持っているべき
[user]
email = [email protected]
user = gitUSER
このファイルの最後に追加してください。
[credential]
helper = store
私がこのオプションをお勧めするのは、それがグローバルであるためであり、いずれにしてもオプションを削除する必要がある場合は、どこに移動してそれを変更するのかを知っている必要があります。
このオプションは、パーソナルコンピュータでのみ使用してください。
それからあなたが引っ張るときクローン| git passwordを入力してください。一般に、パスワードは~/.git-credentials
という形式で保存されます。
https://GITUSER:[email protected]
どこでDOMAIN.XXXがGITHUB.COMになることができますか。 BITBUCKET.ORG |その他
ドキュメント を参照してください。
あなたはパスワードをディスク上に暗号化せずに保存するためにgit-credential-storeを使うことができ、ファイルシステムの許可によってのみ保護されます。
例
$ git config credential.helper store
$ git Push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
[several days later]
$ git Push http://example.com/repo.git
[your credentials are used automatically]
ファイル~/.git-credentials
に保存されている資格情報を確認できます。
詳細な情報については git-credential-store - ディスクに資格情報を保存するためのヘルパー
グローバル設定の場合は、次のコマンドを実行して(どこからでも)ターミナルを開きます。
git config --global user.name "your username"
git config --global user.password "your password"
それによって、あなたがあなたのマシンに持っているどんなローカルのgitリポジトリもその情報を使うでしょう。
次のようにして、レポごとに個別に設定できます。
フォローを実行します。
git config user.name "your username"
git config user.password "your password"
それはそのフォルダだけに影響します(あなたの設定はローカルなので)。
SSH認証を使用すると、ユーザー名/パスワード認証よりも安全になります。
Macを使用している場合は、SSHクライアント認証はMacOSキーチェーンに統合されています。 SSHキーを作成したら、端末に入力してください。
ssh-add -K ~/.ssh/id_rsa
これでSSH秘密鍵がMacOSキーチェーンに追加されます。 gitクライアントはリモートサーバーに接続するときにsshを使います。 ssh公開鍵をサーバーに登録していれば大丈夫です。
このようにURLに資格情報を入力するだけです。
https://Username
:Password
@github.com/myRepoDir/myRepo.git
このようにstoreすることができます:
git remote add myrepo https://Userna...
... {use itの例:
git Push myrepo master
これで、URLエイリアスのListになります。
git remote -v
...そしてそのうちの一つを削除するコマンド:
git remote rm myrepo
その場合は、次のコマンドラインを使用して、gitにGitHubのパスワードとユーザー名を記憶させるように指示するgit認証情報ヘルパーが必要です。
git config --global credential.helper wincred
sSHキーを使用してリポジトリを使用している場合は、認証にSSHキーが必要です。
数十 of SO投稿、ブログなどを調べた後、everyメソッドを試しました。これが私が思いついたものですと。それはすべてをカバーしています。
これらはすべて、gitを安全に認証してリポジトリを複製する方法とツールです対話型パスワードプロンプトなし。
Just Works™が必要ですか?これは魔法の特効薬です。
アクセストークンを取得し(そのためのGithubまたはGiteaの指示が必要な場合は、チートシートのセクションを参照)、環境変数に設定します(ローカル開発およびデプロイメントの両方):
MY_GIT_TOKEN=xxxxxxxxxxxxxxxx
Githubの場合、次の行をコピーして実行しますverbatim:
git config --global url."https://api:[email protected]/".insteadOf "https://github.com/"
git config --global url."https://ssh:[email protected]/".insteadOf "ssh://[email protected]/"
git config --global url."https://git:[email protected]/".insteadOf "[email protected]:"
おめでとうございます。現在、自動化されたツールクローンgitリポジトリは、httpsまたはいずれのスタイルのssh urlを使用する場合でも、パスワードプロンプトによって妨害されません。
Githubを使用していない?
他のプラットフォーム(Gitea、Github、Bitbucket)の場合は、URLを変更するだけです。ユーザー名は変更しないでください(任意ですが、個別の構成エントリには必要です)。
互換性
これは、MacOS、Linux、Windows(Bash)、Docker、CircleCI、Heroku、Akerkerisなどでローカルに動作します。
詳細
チートシートの「.gitconfig alternativeOf」セクションを参照してください。
セキュリティ
チートシートの「セキュリティ」セクションを参照してください。
~/.gitconfig
ファイルを編集することとは別に、あなたが尋ねればあなたがすることができます:
git config --local --edit
または
git config --global --edit
git config --local user.name 'your username'
git config --local user.password 'your password'
または
git config --global user.name 'your username'
git config --global user.password 'your password'
ユーザー名とパスワードには二重引用符を使用するとパスワードを破る可能性のある文字が使用されている可能性があります。
--local
または--global
は、構成パラメーターがプロジェクトまたはosユーザー用に保存されることを意味します。
.git-credentials
は、git config --global credential.helper store
を実行したときにユーザー名とパスワードが保存される場所です。これは他の回答が示唆するもので、ユーザー名とパスワードを入力します。
https://${username}:${password_or_access_token}@github.com
そのため、ユーザー名とパスワードを保存するには:
git config —-global credential.helper store
echo “https://${username}:${password_or_access_token}@github.com“ > ~/.git-credentials
これは、githubロボットに非常に便利です。解決するには 同じdockerリポジトリ内の自動ビルドのチェーン 異なるブランチのルールを設定してから、dockerハブのpost_Push
フッカーでプッシュしてトリガーします。
この例は、stackoverflowで here で確認できます。
上記の答えはどれも私にとってはうまくいきませんでした。 fetch
またはpull
を使用するたびに、次のメッセージを受け取り続けました。
Enter passphrase for key '/Users/myusername/.ssh/id_rsa':
Macの場合
次の方法でパスフレーズを尋ねるのを止めることができました。
vi ~/.ssh/config
UseKeychain yes
:wq!
と入力しますWindowsの場合
このstackexchangeの情報を使用してそれを動作させることができました: https://unix.stackexchange.com/a/12201/348665
Linux Ubuntuでのrifrolのコメントから answer :
Sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
Sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
他のいくつかのディストリビューションはバイナリを提供するため、ビルドする必要はありません。
OS Xでは通常、「osxkeychain」のデフォルトモジュールで「ビルド」されているため、無料で入手できます。