小举人 マニュアル

↑↓ で選択 Enter で開く Esc で閉じる

1台のマシンで複数のSSHキーを作成し、GitHubに接続する方法

1台のマシンに複数のSSHキーを設定し、異なるGitHubアカウントにそれぞれ接続できるようにします。

約2分で読めます
このページの内容

#問題の説明

GitHubのアカウントを複数(個人用と仕事用)持っていて、手元のマシンにSSHキーのペアが一つしかない場合、問題が起きます。たとえば、初期の段階で会社のプロジェクトを取得するためにSSHキーのペアを生成し、それを会社のGitHubアカウントに追加したとします。その後、同じSSHキーを個人のGitHubアカウントに登録しようとして、リポジトリを個人のアカウント下に戻そうとすると、次のようなメッセージが表示されます:Key is already in use。

#原因と解決方法

GitHubは、SSHキーがすでにどこかのGitHubアカウントに登録されているかを確認し、存在する場合は再び追加させません。そこで、ローカルで複数のSSHキーを生成し、それぞれを異なるGitHubアカウントに追加すればよいのです。

#1. 複数のSSHキーを生成する

ターミナル(Mac/Linux)またはGit Bash(Windows)を開きます。次のコマンドを実行します。[email protected] は自分のGitHubのメールアドレスに、key_name はこのキーにつけたい名前に置き換えてください:

ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/key_name

例:

ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/github_work
ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/github_personal

#2. SSH設定ファイルを構成する

次のコマンドを実行して、~/.ssh/config ファイルを作成または編集します:

nano ~/.ssh/config

次の内容を追加し、キーごとに Host を一つずつ作成します:

Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/github_work

Host github-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/github_personal

ファイルを保存して閉じます。

#3. SSHキーをSSHエージェントに追加する

SSHエージェントを起動します:

eval "$(ssh-agent -s)"

SSHキーをSSHエージェントに追加します:

ssh-add ~/.ssh/github_work
ssh-add ~/.ssh/github_personal

#4. SSHキーをGitHubアカウントに追加する

GitHubアカウントごとに行います。

公開鍵の内容をコピーします: cat ~/.ssh/github_work.pub

または

cat ~/.ssh/github_personal.pub

対応するGitHubアカウントにログインします。

右上のアバターをクリックし、「Settings」を選びます。

左側のメニューで「SSH and GPG keys」をクリックします。

「New SSH key」または「Add SSH key」をクリックします。

「Title」欄に、このキーを表す分かりやすい名前を入力します。

コピーした公開鍵の内容を「Key」欄に貼り付けます。

「Add SSH key」をクリックします。

#5. 接続をテストする

それぞれのSSH接続をテストします:

ssh -T github-work

ssh -T github-personal

成功すると、ウェルカムメッセージが表示されます。

これで、新しく追加したGitHubのSSHキーを使ってコードを取得できるようになります。