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


172

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

Gitメール設定する手順、つまりGit変数github.userとgithub.token を設定する手順を試しましたが、違いはありませんでした。

なぜこれが起こっているのか分かりません。


パスワードをキャッシュする必要があります:help.github.com/articles/set-up-git#password-caching
Piotr Usewicz

回答:


33

一度だけ認証する必要があるssh-agentをセットアップする必要があります。方法については、SOでこの回答を参照してください。


1
しかし、この解決策はssh-familyフレーズ用です。問題は、gitがssh-agentをトリガーしない「git push」を使用していることです。(私はすでにこれを行っているので、それが機能しないことを知っています。)
picardo

2
@picardo:私はこれをやったことがありますが、実際に動作します。
デニース

213

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

これは、今日、httpsプロトコルを使用してプロジェクトのクローンを作成したためです!使用しているプロトコルを確認するには、単に実行します

git config -l

「remote.origin.url」で始まる行を見てください。

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

git config remote.origin.url git@github.com:the_repository_username/your_project.git

the_repository_usernameそしてyour_project、適切なリポジトリ名とそのリポジトリの所有者に置き換えてください。ユーザー名は、リポジトリを所有している場合は自分のもの、そうでない場合はリポジトリ所有者のユーザー名になります。


5
それは私のために働いた。:一つは、それはgithubの上で表示されるURLは自分のユーザー名が、レポアドレスが含まれて私のいないということであるgit@github.com:some-user/repo-name.git
B七

1
注:Googleが私をここに連れてきました。私が持っていたremote.origin.urlのhttpsメソッドにセットをしてさえいた気付かなかったhttpsssh方法。このURLは私が明らかに見助けhelp.github.com/articles/...
クリス・K

パスワード入力も渡す方法はありますか?
zishe

git知識のある人に対するQ:git config remote.origin.url ...上記で使用したものと、 git remote set-url origin ...
ダリン

私はそのような間違った起源をどのように削除するか理解できませんでした。答えは次のとおりですgit remote rm origin
。– Vacilando

30

SSHの代わりにHTTPSを使用している場合、次のようにできます。

  1. リモートURL(remote.origin.url)を見つけます

    git config -l
    

    セルジオ・モルスタビリーニのおかげで

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

  3. このコマンドを実行します:

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

2
私のユーザー名自体が含まれています@、私のために働いていませんでした。
coding_idiot

しかし、それがなければ(メールを使う必要はありません)完全に動作します!ありがとう。
キラー14年

4
ユーザー名に@が含まれている場合は、URLエンコードする必要があります。meyerweb.com/eric/tools/dencoder
ティムBodeit

1
セキュリティ上の理由からパスワードを省略する必要があります。
ザイギマンタス

3
パスワードは.git/configファイル内のプレーンテキストで保存されることに注意してください!
アムロ

26

HTTPSを使用することを好みます。sshキーを設定するよりも簡単で安全であることがわかります。

HTTPSを使用すると、次のようにして、gitがgithubリモートのユーザー名を要求するのを防ぐことができます。

git config --global url."https://yourusername@github.com".insteadOf "https://github.com"

そして、少なくともgitがパスワードを要求する頻度を減らすことができます:

git config --global credential.helper 'cache --timeout=28800'

28800は8時間です。私はこのセットアップを使用して、勤務時間を開始するときに1回だけパスワードを入力します。

その後、これらのエントリが ~/.gitconfig

[url "https://yourusername@github.com"]
    insteadOf = https://github.com

[credential]
    helper = cache --timeout=28800

ソース:

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

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


6

githubのsshキーを設定するときに、それがデフォルトのキーでない場合は、セクションをセクションに追加する必要があります ~/.ssh/config

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

6

HTTPSを使用してWindowsを使用している場合は、Git資格情報ストアを試してください-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.

次に、名前とパスワードを次に入力するときに、それらが記憶されます。


1
ありがとうございました。プロジェクトの名前はGit-Credential-Manager-for-Windowsに変更されました
マイケルS.

5

また、ユーザー名ではなく、毎回パスワードの入力を求める場合は、ユーザー名を使用してHTTPSとしてリモートを設定します。このように..

git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name

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

これは、世界と共有する前にgithubのパスワードを入力せざるを得ないので、私が好む方法です。


2

私と同じように2要素認証を使用している場合、状況は少し異なります。他の場所では良い答えが見つからなかったので、後で見つけられるようにここに貼り付けます。

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

そして、私はこれを見た場所を覚えていませんが、ユーザー名を求められたとき-それはあなたがアプリケーションアクセストークンを貼り付ける場所です。次に、パスワードを空白のままにします。私のMacで働いた。


2

SSHを使用する

プッシュ中にGitHubがパスワードを要求しないようにするには、理想的にはHTTPS URL()ではなくSSHgit@github.com:...)を使用し、GitHubアカウントにSSHキーを追加する必要があります。参照:どのリモートURLを使用する必要がありますか?https://github.com/...

GitHub-SSHでクローンする

クレデンシャルヘルパー

それ以外の場合、本当にHTTPSを使用する必要がある場合、GitGitHubパスワードキャッシュするに、資格情報ヘルパーを使用して、GitHubと通信するたびにGitHubのユーザー名とパスワードを記憶するようGitに指示する必要があります。

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

.netrc

別の方法は、~/.netrc_netrcWindowsの場合)でユーザー/パスワードの設定を使用することです。たとえば、

machine github.com
login USERNAME
password PASSWORD

OAuth

OAuthトークンPersonal APIトークン)を使用して、変更をプッシュします。例えば

git push https://4UTHT0KEN@github.com/foo/bar

関連する:


1

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

$ git config --global credential.helper wincred

もう一度サインインするだけで、gitは記憶します。


1

ユーザー名を尋ねるのは面倒ですが、パスワードを尋ねるのは良いことです。なぜなら、変更を本当に公開したいと思うからです...

したがって、これを「.gitconfig」に追加するだけです

[url "https://myusername@github.com"]
    insteadOf = https://github.com

0

Windowsを使用している場合は、Git Credential Manager for Windowsを使用します。

このプロジェクトには以下が含まれます

  • Windows資格情報ストアの安全なパスワードストレージ
  • Visual Studio Team Servicesの多要素認証サポート
  • GitHubの2要素認証サポート
  • Visual Studio Team ServicesおよびGitHubのパーソナルアクセストークンの生成と使用のサポート
  • Azure DirectoryがサポートするVisual Studio Team Servicesの非インタラクティブモードのサポート
  • Team Foundation ServerのKerberos認証
  • ビルドエージェント最適化のオプション設定

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

使い方

あなたはしません。資格情報が必要なときに魔法のように機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.