it-swarm-ja.com

複製されたGitHubリポジトリはパスワードを要求しますが、最初に作成されたものはパスワードを要求しません

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

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

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

9
usr

私の推測:

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

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

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

 https://username@ github.com /username/repo.git

ただで

 [email protected]username/repo.git

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

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

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

insteadOf =設定も可能で、プルおよびプッシュの両方をオーバーライドします。)

21
user1686