Blogブログ

TORAT | 2021.9.28

1台のPCで複数のGithubアカウントを切り替えてssh接続する方法

  • github
  • web制作

会社用、クラアント用、プライベート用など複数のGithubアカウントを1台のPCで切り分けてssh接続する方法をご紹介します。

ssh鍵の生成

sshのディレクトリに移動します。

cd ~/.ssh

鍵を生成するコマンドを入力します。

ssh-keygen -t rsa -C {Githubメールアドレス} -f {作成する鍵の名前}

パスフレーズが要求されるため、任意の文字列を2回入力します。

このパスフレーズはgitをプルするときなどに使用します。

パスフレーズ設定後、秘密鍵(ファイル名)と公開鍵(ファイル名.pub)が作成されます。「ls」で確認してください。

先ほど設定した[鍵の名前]と、[鍵の名前.pub]の二つのファイルがあるとOKです。

id_rsa_main		id_rsa_main.pub

Githubに公開鍵を登録

作成された公開鍵(ファイル名.pub)をGithubに登録します。

Githubページに移動し、ログインしてください。

ログイン後、[Settings] -> [SSH keys] -> [Add SSH key]に移動してください。

右上の[New ssh key]を押下します。

titleはわかりやすいものにしておきます。

keyのところへ生成した公開鍵(ファイル名.pub)を貼り付けてください。。下記のコマンドでコピーができます。

$ pbcopy < ~/.ssh/ファイル名.pub

[add SSH key]で登録完了です。

「config」ファイルの設定

アカウント毎にssh鍵を使い分ける為、ローカル環境のssh設定ファイルにHostの登録を行います。

ssh設定ファイル「config」を以下の通り書き換えます。

もしconfigファイルが存在しない場合は、「touch config」で作成してください。


今回はmainとsubでアカウントを切り替える為、2つのHostを登録します。
項目IdentityFileに、それぞれのアカウントで使用する秘密鍵のパスを指定します。

vim config
Host github.com.main # 登録するメインアカウント
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/id_rsa_main  # メインアカウント用秘密鍵のパス
  TCPKeepAlive yes
  IdentitiesOnly yes

Host github.com.sub # 登録するサブアカウント
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/id_rsa_sub  # サブアカウント用秘密鍵のパス
  TCPKeepAlive yes
  IdentitiesOnly yes

接続の確認

configファイルに設定したHostで正常にssh接続ができるかどうか確認します。

ssh -T git@github.com.main
ssh -T git@github.com.sub

先ほど設定したパスフレーズを入力し、以下のメッセージが返ってくるとOKです。

Hi {github user name}! You've successfully authenticated, but GitHub does not provide shell access.

リポジトリをclone

Githubからcloneしてみます。

# (メインアカウントを使う場合:)
git clone git@github.com.main:username/repository-name.git

git remote add origin git@github.com.main:username/repository-name.git

正しく設定されたか確認します。

git config remote.origin.url

以降gitコマンドではHostで設定したssh鍵が使用されます。

この記事を書いた人

TORAT 管理者

関連記事

Recommend愛されているブログ