web-dev-qa-db-ja.com

GITにユーザー名とパスワードを保存するにはどうすればいいですか?

毎回、プロンプトにユーザー名とパスワードを入力せずに、 GitExtension に自動的にプッシュアンドプルを使用したい。

では、どうすれば _ git _ に自分の認証情報を保存できますか?

543
Edson Cezar

実行する

git config credential.helper store

それから

git pull

ユーザー名とパスワードを入力してください。これらの詳細は後で記憶されます。認証情報はディスク上のファイルに保存され、ディスクのアクセス許可は「ユーザーのみが読み取り/書き込み可能」ですが、プレーンテキストのままです。

後でパスワードを変更したい場合

git pull

失敗したので、失敗するでしょう、それは~/.git-credentialsファイルから問題のユーザー+パスワードを削除します。

git pull

新しいパスワードを入力すると、以前と同じように機能します。

1022
Neetika

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を使用してください。

178
Farhad Faghihi

Gitがパスワードをしばらくの間メモリに保存するように、認証情報ヘルパーをオンにします。

ターミナルで、次のように入力します。

# 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ヘルプ

73
simhumileco

あなたのユーザー名とパスワードをこのように設定することができます。

git config --global user.name "your username"

git config --global user.password "your password"
63
Andreas Bigger

~/.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 |その他

ドキュメント を参照してください。

端末を再起動してください。

28
T04435

あなたはパスワードをディスク上に暗号化せずに保存するために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"
    

それはそのフォルダだけに影響します(あなたの設定はローカルなので)。

12
Tuananhcwrs

SSH認証を使用すると、ユーザー名/パスワード認証よりも安全になります。

Macを使用している場合は、SSHクライアント認証はMacOSキーチェーンに統合されています。 SSHキーを作成したら、端末に入力してください。

ssh-add -K ~/.ssh/id_rsa

これでSSH秘密鍵がMacOSキーチェーンに追加されます。 gitクライアントはリモートサーバーに接続するときにsshを使います。 ssh公開鍵をサーバーに登録していれば大丈夫です。

12
Birol Efe

このようにURLに資格情報を入力するだけです。

https://UsernamePassword@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

12
Nadu

その場合は、次のコマンドラインを使用して、gitにGitHubのパスワードとユーザー名を記憶させるように指示するgit認証情報ヘルパーが必要です。

git config --global credential.helper wincred 

sSHキーを使用してリポジトリを使用している場合は、認証にSSHキーが必要です。

10
shaw

数十 of SO投稿、ブログなどを調べた後、everyメソッドを試しました。これが私が思いついたものですと。それはすべてをカバーしています。

The Vanilla DevOps Git Credentials&Private Packages Cheatsheet

これらはすべて、gitを安全に認証してリポジトリを複製する方法とツールです対話型パスワードプロンプトなし

  • SSH公開キー
    • SSH_ASKPASS
  • APIアクセストークン
    • GIT_ASKPASS
    • 代わりに.gitconfig
    • .gitconfig [資格情報]
    • .git-credentials
    • .netrc
  • プライベートパッケージ(無料)
    • node/npm package.json
    • python/pip/eggs requirements.txt
    • Ruby gem Gemfile
    • golang go.mod

銀の弾丸

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」セクションを参照してください。

セキュリティ

チートシートの「セキュリティ」セクションを参照してください。

3
CoolAJ86

~/.gitconfigファイルを編集することとは別に、あなたが尋ねればあなたがすることができます:

git config --local --edit

または

git config --global --edit

常に single quotesを使用するように注意してください。

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ユーザー用に保存されることを意味します。

2
prosti

ユーザー名とパスワードを.git-credentialsに保存する

.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 で確認できます。

1
JiaHao Xu

上記の答えはどれも私にとってはうまくいきませんでした。 fetchまたはpullを使用するたびに、次のメッセージを受け取り続けました。

Enter passphrase for key '/Users/myusername/.ssh/id_rsa':


Macの場合

次の方法でパスフレーズを尋ねるのを止めることができました。

  1. 実行して構成を開きます:vi ~/.ssh/config
  2. 以下を追加しました:UseKeychain yes
  3. 保存して終了:Escを押してから、:wq!と入力します

Windowsの場合

このstackexchangeの情報を使用してそれを動作させることができました: https://unix.stackexchange.com/a/12201/348665

1
Gene Parcellano

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」のデフォルトモジュールで「ビルド」されているため、無料で入手できます。

0
rogerdpack