web-dev-qa-db-ja.com

GitがGitHubのユーザー名とパスワードを要求しないようにするにはどうすればよいですか?

私はGitHubのレポジトリで作業していて、何かをプッシュしようとするたびに、GitHubのユーザー名とパスワードを尋ねられます。それをやりたくないのです。

私は Git にあなたの電子メールを設定すること、すなわちGit変数github.userとgithub.tokenを設定することについての指示を試みました、しかしそれは何の違いも生じませんでした。

なぜこれが起こっているのか理解できません。

167
picardo

一度だけ認証すればよいssh-agentを設定する必要があります。ハウツーについてはSOで この答え をご覧ください。

30

今日も同様の問題がありました。作業コピーで問題を解決できなかったので、ディレクトリの名前を変更して、githubからプロジェクトのクローンをもう一度作成することにしました。しかし、それを行った後は、以前のように一度だけパスフレーズを入力するのではなく、プル/プッシュ要求を実行するためにパスワードを入力する必要がありました。

これは、今日httpsプロトコルを使用してプロジェクトを複製したためです。使用しているプロトコルを確認するには、単に実行します。

git config -l

そして 'remote.Origin.url'で始まる行を見てください。

プロトコルを切り替えるには:

git config remote.Origin.url [email protected]:the_repository_username/your_project.git

the_repository_usernameyour_projectは、適切なリポジトリ名とそのリポジトリの所有者に置き換えてください。リポジトリを所有している場合はユーザー名、それ以外の場合はリポジトリ所有者のユーザー名になります。

212

SSHの代わりにHTTPSを使用している場合は、これに従うことができます。

  1. であなたのリモートURL(remote.Origin.url)を見つけてください

    git config -l
    

    sergio Morstabiliniに感謝します

  2. リモートURLは次のようになります。https:// {USERNAME} @ github.com/{USERNAME}/{REPONAME} .git

  3. このコマンドを実行してください。

    git config remote.Origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
    
29
Eray

私は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

ソース:

http://git-scm.com/docs/git-credential-cache

http://git-scm.com/docs/git-config

26
stefanmaric

Github用のsshキーを設定するとき、それがあなたのデフォルトのキーでなければ、あなたの~/.ssh/configにセクションを追加する必要があるでしょう。

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa
6
Daenyth

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.

それからあなたがあなたの名前とパスワードを次に入力するとき、それはあなたのためにそれらを覚えているでしょう。

6
Brian Burns

また、毎回パスワードの入力を求められるがユーザー名だけではないのであれば、リモートをHTTPSとしてユーザー名を使って設定します。

git config remote.Origin.url https://[email protected]/repo_owner/repo_name

これ以降、毎回パスワードの入力を求められますが、ユーザー名は入力されません。

私は世界と共有する前に私のgithubパスワードをタイプすることを強いられるのが好きなので、これは私がそれを好む方法です。

5
David Jeske

sSHを使用する

プッシュ中にGitHubがパスワードを要求しないようにするには、理想的にはHTTPS URL([email protected]:...)ではなくse SSHhttps://github.com/...)および SSHキーをGitHubアカウント 。参照: どのリモートURLを使用すべきですか?

GitHub - Clone with SSH

クレデンシャルヘルパー

そうでなければ、本当にHTTPSを使用する必要がある場合は、 GitでGitHubパスワードをキャッシュする に、資格情報ヘルパーを使用して、GitにGitHubのユーザー名とパスワードを記憶させるGitHubと通信するたびに。

  • Mac:git config --global credential.helper osxkeychainosxkeychain helperが必要)、
  • Windows:git config --global credential.helper wincred
  • Linuxおよびその他:git config --global credential.helper cache

.netrc

別の方法は、~/.netrc(Windowsでは_netrc)でユーザー/パスワードを設定することです。

machine github.com
login USERNAME
password PASSWORD

OAuth

OAuthトークンパーソナルAPIトークン )を使用して、変更をプッシュします。

git Push https://[email protected]/foo/bar

関連:

2
kenorb

私のように2要素認証を使っているのであれば、状況は少し異なります。私は他のところで良い答えを見つけられなかったので、私は多分私が後でそれを見つけることができるようにここでそれをつけるでしょう。

2要素認証を使用している場合は、ユーザー名/パスワードを指定しても機能しません - アクセスが拒否されます。しかし、あなたはアプリケーションアクセストークンを使い、それをあなたのためにキャッシュするためにgitの認証ヘルパーを使うことができます。関連リンクは次のとおりです。

私はこれを見た場所を覚えていませんが、あなたがあなたのユーザー名を尋ねられた時 - それはあなたがアプリケーションアクセストークンを固執する場所です。その後、パスワードを空白のままにします。私のMacで働いた。

2
John Berryman

また、Windowsを使用している場合は、次のものを使用できます。

$ git config --global credential.helper wincred

もう一度サインインするだけで、gitが覚えているでしょう。

ユーザー名を尋ねるのは私にとっては面倒ですが、パスワードを尋ねるのはいいですね。それはあなたの変更を本当に公開したいのですから...

だから私はちょうど私の ".gitconfig"にこれを追加します

[url "https://[email protected]"]
    insteadOf = https://github.com
1
ViToni

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認証
  • ビルドエージェント最適化のためのオプション設定

単純に 最新バージョン をダウンロードしてインストールしてください。

使い方

あなたは違います。信任状が必要なときは 魔法のように 機能します。

0
Jalal