2つのGitHubアカウントを作成しました。 1つは仕事用のユーザー用で、もう1つは個人用です。私はいくつかの仕事に追いつく必要があり、そのため私のレポジトリを私のPCにクローンしました。ユーザー名とパスワードを入力せずに単純な「git Push Origin master」コミットを行うために、自宅のPCから作業リポジトリに公開キーを追加するだけです。ただし、Githubでこのエラーが発生します。
Error: Key already use
少しグーグルをした後、私はこれに遭遇しました リンク 「問題を解決するには、他のアカウントまたはリポジトリからキーを削除し、アカウントに追加してください」と述べています自分の個人公開プロジェクトでコーディングできるように、ホームの公開キーをgithubに追加しました。結局のところ、仕事用PCと個人用PCの両方を使用して、仕事用レポにコーディングできるようにしたいのです。
Githubがそのエラーをスローすることなく、複数の「同じ」公開キーを追加するにはどうすればよいでしょうか。また、なぜ世界でエラーが最初にスローされるのでしょうか。
キーは既にデプロイキーとして他のgithubプロジェクトで使用されている可能性があります。これを見つけるのは少し難しいですが、実行します。
ssh -T -ai ~/.ssh/id_rsa [email protected]
使用されたキーを見つけるには、それを削除してから、適切なユーザー/リポジトリで再度読み取ります。それは私にとって非常に役に立ちました
from: https://help.github.com/articles/error-key-already-in-use/#finding-where-the-key-has-been-used
編集:@ mikhail-morgunovが指摘したように、これは常に機能するわけではありません。実際にこのスニペットを使用するのは、デフォルトのid_rsa
SSH秘密鍵はgithubのデフォルトのものです
これは、キー名が抽出されたスニペットです。
ssh -T -ai ~/.ssh/KEY_NAME [email protected]
変化する KEY_NAME
あなたのSSH秘密鍵の名前とあなたが行ってもいいでしょう
id_rsa_personal.pub
などのもう1つのキーペアを作成し、Githubアカウントに追加できます。
次に、.ssh/config
ファイルを作成/編集します。
# Default GitHub
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
Host github-public
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_public
Host github-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_personal
上記のファイルは、複数のGithubアカウントを使用するのに役立ちます。背景情報については、 この質問 への回答を参照してください。
次に、.git/config
リモートURLを次のように変更する必要があります。
git@github-personal:<gh_username>/<gh_reponame>.git
通常よりも:
[email protected]:<gh_username>/<gh_reponame>.git
ジョンは、彼にとってはうまくいかなかったとコメントしました。
おそらく足りないステップは、通常のgit@github-personal/<reponame>.git
ではなく[email protected]/<reponame>.git
などを指すように.git/configリモートURLを変更する必要があることです
異なるgithubリポジトリには同じsshキーを使用できますが、多くのリポジトリ(つまり、異なるログインまたはフォークからの同じリポジトリ)に同じsshキーを使用することはできません
次のような既存のキーを邪魔することなく、マシンに別のキーを作成できます:ssh-keygen -t rsa -C "[email protected]"
次に、リポジトリのキーを識別するためのファイル名を指定します
Enter file in which to save the key (/home/demo/.ssh/id_rsa):/home/demo/.ssh/id_rsa_mykey<br>
詳細については https://developer.github.com/guides/managing-deploy-keys/#deploy-keys をご覧ください。