クローンされたGitHubリポジトリはパスワードを要求しますが、最初に作成されたものではありません


9

ディスクから大量のリポジトリを失ったので、GitHubからそれらを複製しました。これらは、GitHubに何かをプッシュするたびにユーザー名とパスワードを要求します。削除されていないものはそれを行いません。
ユーザー名/パスワードプロンプトを取り除くために読んだ唯一の解決策は、sshキーを生成することです。問題は、すでにキーを持っていることです。それ以外の場合は、クローンを作成しなかったため、それらのリポジトリでプロンプトなしにプッシュすることができませんでした。

私はgit config2つのリポジトリーを見ました。1つはパスワードなしでプッシュできるもので、もう1つはクローンしたものです。唯一の違いはbranch.master.remotebranch.master.merge私が設定を解除した設定git configと同じでした。しかし、プロンプトはまだそこにあります。

新しいsshキーの生成が機能するかどうかさえわかりません。私のオプションは何ですか?


詳細については、help.github.com / ssh-issuesをご覧ください。SSHを使用するとどうなりますか?

回答:


21

私の推測:

古いリポジトリは、公開鍵認証を使用するSSHリモート(git@github.com:またはssh://git@github.com/プレフィックス)を使用しました。(実際、Github SSHサーバーパスワードを要求しません。)

新しいリポジトリはHTTPリモート()を使用します。これは、パスワードベースのHTTP基本認証のみをサポートし、SSHキーを使用しません。https://username@github.com/

SSHを再度使用するようにリモートURLを変更します。これを行うには、使用git remote set-urlまたは編集.git/configします。交換する

https:// ユーザー名 @ github.com / ユーザー名 /repo.git

ちょうどで

git@github.com:ユーザー名 /repo.git

に、~/.gitconfigリモートURLをHTTPまたはGitからSSHに変換するように指示するエントリを含めることもできます。

このように、リポジトリがHTTPまたはGitリモート用に構成されている場合、Gitはプッシュ時にその設定を無視し、代わりにSSHを使用します。

[url "git@github.com:"]
    pushInsteadOf = git://github.com/
    pushInsteadOf = https://github.com/

insteadOf =引き押しの両方をオーバーライドする設定も可能です。)

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