GitHub で複数のアカウントに公開鍵を登録しようとすると「Key is already in use」と表示されて鍵の登録がうまくいかない。
この場合、デプロイ用のキーを複数作るとやりたいことができたのでその方法をメモります。
症状
公開鍵を登録しようとすると以下の画面のようなエラーになる。
このエラーは、他のアカウントやリポジトリにすでに追加されているキーを追加しようとする場合に発生するようです。
https://docs.github.com/ja/authentication/troubleshooting-ssh/error-key-already-in-use
対応方法
作業端末
セカンダリの鍵作成
以下のコマンドでセカンダリの鍵を名前を指定して作成します。
$ ssh-keygen -f ~/.ssh/rep-second
「ssh config」作成
configファイルを作成します。
$ touch ~/.ssh/config $ chmod 600 ~/.ssh/config $ vim ~/.ssh/config
「ssh config」追記
config ファイルに "github-rep-second" の設定を追加します。
Host github-rep-second User git Port 22 HostName github.com IdentityFile ~/.ssh/rep-second TCPKeepAlive yes IdentitiesOnly yes
Githubでの作業
ブラウザを立ち上げ、Github にアクセスします。
Githubに公開鍵を登録
Github にログインし先ほど作成したセカンダリの公開鍵を登録します。
作業端末
作業端末に切り替えます。
sample01 作成
検証用のレポジトリを作成します。
GitHubにアクセス
接続先のホスト名をconfigで指定したホスト名に変更して[git clone]できるか検証します。
git@github.com:{{セカンダリID}}/sample01.git
↓
git@github-rep-second:{{セカンダリID}}/sample01.git
git clone git@github-rep-second:{{セカンダリID}}/sample01.git Cloning into 'sample01'... remote: Enumerating objects: 4, done. remote: Counting objects: 100% (4/4), done. remote: Compressing objects: 100% (3/3), done. Receiving objects: 100% (4/4), done. remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
適当にファイルを編集してaddして、commitしてみて git push できれば問題解決できたと思います。