画面の指示に従って新しいリポジトリをプッシュするときにGithubがユーザー名/パスワードを要求するのはなぜですか?


298

私はgithubで組織の所有者であり、リポジトリを作成してプッシュしようとしましたが、SSHは問題なくできますが、ユーザー名の入力を求められる問題が発生しています。

$ ssh -T git@github.com
Hi Celc! You've successfully authenticated, but GitHub does not provide shell access.
$ git add .
$ git commit -m 'first commit'
[master (root-commit) 3f1b963] first commit
 6 files changed, 59 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 main.js
 create mode 100644 package.json
 create mode 100644 readme.markdown
 create mode 100644 views/index.ejs
 create mode 100644 views/layout.ejs
$ git remote add origin https://github.com/WEMP/project-slideshow.git
$ git push -u origin master
Username for 'https://github.com':

何が悪いのですか?これは私には以前に起こったことはありませんが、最近git 1.7.10.3にもアップグレードしました。

回答:


662

代わりにHTTPを使用せず、SSHを使用

変化する

https://github.com/WEMP/project-slideshow.git 

git@github.com:WEMP/project-slideshow.git

あなたは.git/configファイルでそれを行うことができます


1
ありがとう!stackoverflow.com/a/10126412/29347を読んだ後、私はこれを理解しましたが、githubが通常、HTTPSとしてリポジトリのリモートを提供して、混乱を引き起こしたとは思いません。
キットSunde

2
このオプションを変更するには、クローンURLをコピーするボタンをクリックします。
Derek Adair、2014

MacOSの場合。最新のmacosにアップグレードすると問題が発生します。stackoverflow.com/a/39616339/1445102
1Rhino

12
stackoverflow.com/questions/10126381/…でgit remote set-url origin git@github.com:user/repo.git詳しく説明されているように、これを行うこともできます
そして最後に

54

私はこれと同じ問題を抱えていて、httpsで複製されたbitbucketリポジトリではなぜそれが起こらないのか疑問に思いました。少し調べてみると、BBリポジトリの設定に、ユーザー名を含むURLが含まれていることがわかりました。だから私はGHリポジトリの設定を手動で編集したので、ユーザー名のプロンプトは表示されなくなりました。私はWindowsを使用しています。

編集your_repo_dir/.git/config.gitフォルダは非表示になっていることを忘れないでください)

変化する:

https://github.com/WEMP/project-slideshow.git

に:

https://*username*@github.com/WEMP/project-slideshow.git

ファイルを保存します。git pullをテストしてください。

これを行う適切な方法は、おそらくgit bashコマンドを使用して設定を編集することですが、ファイルを直接編集することは問題にならなかったようです。


これは良い点です。ユーザー名を含めると、OSのキーチェーンによって処理されます(少なくともOSXでは必要ですが、明らかにWindowsでも同様です)。ファイルをメモ帳で編集するか、vim / emacs / nano / viを使用して編集するかには違いはありません。技術的な問題についてはそれほど心配する必要はありません。
キットSunde

20

ここで公式の答えこれには:

GitHubを操作するたびにGitがユーザー名とパスワードの入力を要求する場合は、リポジトリにHTTPSクローンURLを使用している可能性があります。

HTTPSリモートURLの使用はいくつかの利点がよりも設定が簡単で、通常は厳密なファイアウォールとプロキシを介して機能します。ただし、リポジトリをプルまたはプッシュするたびに、GitHubの認証情報を入力するように求められます。

パスワードを保存するようにGitを構成できます。これを設定する場合は、パスワードキャッシュの設定に関するすべてをお読みください。


1
ありがとう。私がGithubでここに
到達

これは質問の答えです。質問はなぜですか?
eli

14

@Ianlの回答を改善し、

2段階認証が有効になっている場合、パスワードの代わりにトークンを使用する必要があるようです。ここでトークンを生成できます

ユーザー名とパスワードの両方のプロンプトを無効にする場合は、次のようにURLを設定できます-

git remote set-url origin https://username:password@github.com/WEMP/project-slideshow.git

URLにはユーザー名とパスワードの両方が含まれていることに注意してください。また、.git/configファイルには現在の設定が表示されます。


アップデート20200128:

パスワードを設定ファイルに保存したくない場合は、個人トークンを生成して、パスワードをトークンに置き換えることができます。ここにいくつかの詳細があります。

それはこのようになります-

git remote set-url origin https://username:token@github.com/WEMP/project-slideshow.git

これは安全ですか?誰かが私のコンピュータからこの情報にアクセスすることはできますか?
Akaisteph7

はい、.git/configファイルにプレーンテキストで保存されているため、コンピューターからアクセスできます
kaushal

11

追加のメモ:

リモート($ git remote add origin ...)をすでに追加していて、その特定のリモートを変更する必要がある場合は、最初にリモート削除($ git remote rm origin)を実行してから、新しく改善されたリポジトリURL(ここで「origin」はリモートリポジトリの名前でした。

元の例を使用するには:

$ git remote add origin https://github.com/WEMP/project-slideshow.git
$ git remote rm origin
$ git remote add origin https://github-username@github.com/WEMP/project-slideshow.git

4
リモコンを取り外す必要はありません。あなただけのURLを変更することができますgit remote set-url origin https://github-username@github.com/WEMP/project-slideshow.git
shovavnik

8

HTTPSを使用している場合は、URLが正しいことを確認してください。例えば:

$ git clone https://github.com/wellle/targets.git
Cloning into 'targets'...
Username for 'https://github.com': ^C

$ git clone https://github.com/wellle/targets.vim.git
Cloning into 'targets.vim'...
remote: Counting objects: 2182, done.
remote: Total 2182 (delta 0), reused 0 (delta 0), pack-reused 2182
Receiving objects: 100% (2182/2182), 595.77 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1044/1044), done.

1
それは素晴らしい点です!URLにタイプミスがある場合、リポジトリが存在しないというメッセージが表示される代わりに、「ユーザー名」の入力を求められます。
dmitrii 2017年

5

github.com管理者から次のようなメールが届きました。「通常、SSHプロトコルを使用する特別な理由がない限り、HTTPS URLを使用することをお勧めします。HTTPSは安全で設定が簡単なので、新しいリポジトリが作成されたときのデフォルトに設定されています。」

パスワードプロンプトは、通常のgithub.comログインの詳細を実際に受け入れます。パスワードキャッシュの設定方法に関するチュートリアルは、https://help.github.com/articles/set-up-git#password-cachingにあります。私はチュートリアルの手順に従いましたが、うまくいきました。



4

HTTPSを使用しているため。HTTPSでは、プッシュまたはプルしようとするたびにアカウントアクセスを入力する必要がありますが、SSHと呼ばれる方法もあります。これにより、gitに、このPCに対する私のアカウントでアクセス許可を与えること、および要求しないことを伝えることができます。すべてのユーザーアクセスについてもう一度。これを使用するには、SSHキーを生成してGithubのアカウントに1回追加する必要があります。これを行うには、次の手順に従います。

GithubのSSHキーを生成する方法


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