私はGitHubのレポジトリで作業していて、何かをプッシュしようとするたびに、GitHubのユーザー名とパスワードを尋ねられます。それをやりたくないのです。
私は Git にあなたの電子メールを設定すること、すなわちGit変数github.userとgithub.tokenを設定することについての指示を試みました、しかしそれは何の違いも生じませんでした。
なぜこれが起こっているのか理解できません。
一度だけ認証すればよいssh-agentを設定する必要があります。ハウツーについてはSOで この答え をご覧ください。
今日も同様の問題がありました。作業コピーで問題を解決できなかったので、ディレクトリの名前を変更して、githubからプロジェクトのクローンをもう一度作成することにしました。しかし、それを行った後は、以前のように一度だけパスフレーズを入力するのではなく、プル/プッシュ要求を実行するためにパスワードを入力する必要がありました。
これは、今日httpsプロトコルを使用してプロジェクトを複製したためです。使用しているプロトコルを確認するには、単に実行します。
git config -l
そして 'remote.Origin.url'で始まる行を見てください。
プロトコルを切り替えるには:
git config remote.Origin.url [email protected]:the_repository_username/your_project.git
the_repository_username
とyour_project
は、適切なリポジトリ名とそのリポジトリの所有者に置き換えてください。リポジトリを所有している場合はユーザー名、それ以外の場合はリポジトリ所有者のユーザー名になります。
SSHの代わりにHTTPSを使用している場合は、これに従うことができます。
であなたのリモートURL(remote.Origin.url)を見つけてください
git config -l
sergio Morstabiliniに感謝します
リモートURLは次のようになります。https:// {USERNAME} @ github.com/{USERNAME}/{REPONAME} .git
このコマンドを実行してください。
git config remote.Origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
私はHTTPSを使用することを好みます、私はそれがsshキーを設定するより簡単で安全であると思います。
HTTPSを使用すると、次のようにしてgitがユーザー名にgithubリモートを要求するのを防ぐことができます。
git config --global url."https://[email protected]".insteadOf "https://github.com"
そして、あなたは少なくともgitがあなたのパスワードを尋ねる頻度を減らすことができます:
git config --global credential.helper 'cache --timeout=28800'
28800は8時間です。このセットアップを使用して、就業日に開始したときに1回だけパスワードを入力します。
その後、あなたはあなたの~/.gitconfig
の中にこれらのエントリーを持つでしょう。
[url "https://[email protected]"]
insteadOf = https://github.com
[credential]
helper = cache --timeout=28800
ソース:
Github用のsshキーを設定するとき、それがあなたのデフォルトのキーでなければ、あなたの~/.ssh/config
にセクションを追加する必要があるでしょう。
Host *github.com
User git
IdentityFile ~/.ssh/github_id_rsa
HTTPSを使用してWindowsを使用している場合は、 Git Credential Store を試します。これは、Windows資格情報ストアを使用して名前とパスワードを保持します。
Windows Credential Store for Git
This application is a small helper app designed to follow the
git credentials API as defined by the Git Documentation.
Installation
1. Download the git-credential-winstore.exe application
2. Run it! If you have GIT in your PATH, it should just work.
それからあなたがあなたの名前とパスワードを次に入力するとき、それはあなたのためにそれらを覚えているでしょう。
また、毎回パスワードの入力を求められるがユーザー名だけではないのであれば、リモートをHTTPSとしてユーザー名を使って設定します。
git config remote.Origin.url https://[email protected]/repo_owner/repo_name
これ以降、毎回パスワードの入力を求められますが、ユーザー名は入力されません。
私は世界と共有する前に私のgithubパスワードをタイプすることを強いられるのが好きなので、これは私がそれを好む方法です。
プッシュ中にGitHubがパスワードを要求しないようにするには、理想的にはHTTPS URL([email protected]:...
)ではなくse SSH(https://github.com/...
)および SSHキーをGitHubアカウント 。参照: どのリモートURLを使用すべきですか?
そうでなければ、本当にHTTPSを使用する必要がある場合は、 GitでGitHubパスワードをキャッシュする に、資格情報ヘルパーを使用して、GitにGitHubのユーザー名とパスワードを記憶させるGitHubと通信するたびに。
git config --global credential.helper osxkeychain
(osxkeychain helper
が必要)、git config --global credential.helper wincred
git config --global credential.helper cache
.netrc
別の方法は、~/.netrc
(Windowsでは_netrc
)でユーザー/パスワードを設定することです。
machine github.com
login USERNAME
password PASSWORD
OAuthトークン ( パーソナルAPIトークン )を使用して、変更をプッシュします。
git Push https://[email protected]/foo/bar
関連:
私のように2要素認証を使っているのであれば、状況は少し異なります。私は他のところで良い答えを見つけられなかったので、私は多分私が後でそれを見つけることができるようにここでそれをつけるでしょう。
2要素認証を使用している場合は、ユーザー名/パスワードを指定しても機能しません - アクセスが拒否されます。しかし、あなたはアプリケーションアクセストークンを使い、それをあなたのためにキャッシュするためにgitの認証ヘルパーを使うことができます。関連リンクは次のとおりです。
私はこれを見た場所を覚えていませんが、あなたがあなたのユーザー名を尋ねられた時 - それはあなたがアプリケーションアクセストークンを固執する場所です。その後、パスワードを空白のままにします。私のMacで働いた。
また、Windowsを使用している場合は、次のものを使用できます。
$ git config --global credential.helper wincred
もう一度サインインするだけで、gitが覚えているでしょう。
ユーザー名を尋ねるのは私にとっては面倒ですが、パスワードを尋ねるのはいいですね。それはあなたの変更を本当に公開したいのですから...
だから私はちょうど私の ".gitconfig"にこれを追加します
[url "https://[email protected]"]
insteadOf = https://github.com
Windowsを使用している場合は、 Windows用Git Credential Manager を使用してください。
このプロジェクトはを含みます:
- Windows資格情報ストアでの安全なパスワード保存
- Visual Studio Team Servicesの多要素認証サポート
- GitHubのための二要素認証サポート
- Visual Studio Team ServicesおよびGitHubのパーソナルアクセストークンの生成と使用のサポート
- Azure Directoryに支えられたVisual Studio Team Servicesの非インタラクティブモードのサポート
- Team Foundation ServerのKerberos認証
- ビルドエージェント最適化のためのオプション設定
単純に 最新バージョン をダウンロードしてインストールしてください。
使い方
あなたは違います。信任状が必要なときは 魔法のように 機能します。