web-dev-qa-db-ja.com

GitHubエラー:キーは既に使用されています

2つのGitHubアカウントを作成しました。 1つは仕事用のユーザー用で、もう1つは個人用です。私はいくつかの仕事に追いつく必要があり、そのため私のレポジトリを私のPCにクローンしました。ユーザー名とパスワードを入力せずに単純な「git Push Origin master」コミットを行うために、自宅のPCから作業リポジトリに公開キーを追加するだけです。ただし、Githubでこのエラーが発生します。

Error: Key already use

少しグーグルをした後、私はこれに遭遇しました リンク 「問題を解決するには、他のアカウントまたはリポジトリからキーを削除し、アカウントに追加してください」と述べています自分の個人公開プロジェクトでコーディングできるように、ホームの公開キーをgithubに追加しました。結局のところ、仕事用PCと個人用PCの両方を使用して、仕事用レポにコーディングできるようにしたいのです。

Githubがそのエラーをスローすることなく、複数の「同じ」公開キーを追加するにはどうすればよいでしょうか。また、なぜ世界でエラーが最初にスローされるのでしょうか。

30
John Crawford

キーは既にデプロイキーとして他の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秘密鍵の名前とあなたが行ってもいいでしょう

25
makevoid

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

38
Bijendra

ジョンは、彼にとってはうまくいかなかったとコメントしました。

おそらく足りないステップは、通常のgit@github-personal/<reponame>.gitではなく[email protected]/<reponame>.gitなどを指すように.git/configリモートURLを変更する必要があることです

7
James Ferguson

異なる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 をご覧ください。

1
HariKishore