LoginSignup
6
3

More than 3 years have passed since last update.

GitHubで複数アカウントを使い分けることに手こずったらみる記事

Last updated at Posted at 2020-07-24

GitHubで複数アカウントを使い分けようとしたら、どの記事も小出しにしか情報を出していなかったため
(初心者なので全部教えてもらわないとできないため)
包括的にまとめます。

今後はSSHでアクセスしようと覚悟を決める

あれです。git cloneとかするとき、何も考えずHTTPSでやってたアクセス方式です。
スクリーンショット 2020-07-24 21.37.53.png

これからは、「Use SSH」ボタンをクリックして、SSH接続しましょう。

SSHとは?

そもそもHTTPSとSSHの違いは何でしょうか。

この問題は、HTTPSはHTTPというテキストデータをSSLという暗号技術によってセキュアにしていることから(HTTPS←HTTP+SSL)、SSLとSSHの違いに置き換えることができます。
←初心者はそもそもここからわからない。しかもSSLとSSHの名前似すぎ。

これに関しては、以下の記事などで詳しく書かれています。
- ここが違うよSSHとSSL! - Qiita
- 「SSL」と「SSH」の違い|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

SSHの鍵を作成し、GitHubに登録する

SSH鍵の作成方法について、色々な方がまとめてくださっています。
個人的に一番わかりやすかったのは以下の記事です。

補足として、SSH鍵自体はGitHub以外でも使うことがあるらしいので、ターミナルで作成することができます。
作成されるとホームディレクトリ(ターミナル立ち上げ時のカレントディレクトリ)に「.ssh」という隠しファイルができます。
この中にある「config」というのがとてつもなく大事なファイルです。
もし、2つのアカウント(仕事用とプライベート用)を使い分けたいのであれば、以下の構成がおすすめです。

.ssh/
 ┣config
 ┣private/
    ┣id_rsa
    ┗id_rsa.pub
 ┗job/
    ┣id_rsa
    ┗id_rsa.pub

上記リンクの補足として、ssh鍵をコピーするときは=mail@hoge.comのイコールマークまでコピーしましょう。

sshキー情報を.ssh/configに設定する

次のステップは、以下の記事が秀逸です。
- 一つのPC上で複数のgitアカウントをうまいこと使い分ける | 前菜の備忘録

configファイルの変更は、私の場合ターミナルでvimコマンドで編集しました。
vimにまだ慣れていない方は、ググってみてください。とりあえずiとwq使えばなんとかなります。

% vim ~/.ssh/config

以下のように設定しました。

Host github github.com
  HostName github.com
  User git
  Port  22
  IdentityFile ~/.ssh/git_job/id_rsa
  TCPKeepAlive yes
  IdentitiesOnly yes

Host github-sub github-sub.com
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/git_private/id_rsa
  TCPKeepAlive yes
  IdentitiesOnly yes

私の場合は「IdentityFile」のスペルが違ってずっと接続できませんでした…

接続の確認

以下のsshコマンドで、正しくGitHubと両アカウントが接続できるか確認できます。

# メイン
$ ssh -T git@github.com
# サブ
$ ssh -T git@github-sub.com

以下のように表示されれば、一見ダメなように見えますが大丈夫です。

Hi (User ID)! You've successfully authenticated, but GitHub does not provide shell access.

GitHubで操作!

以上で複数アカウントを使い分けることができますが、以下のように操作時のコマンドを変えないといけません。
以下のように、サブアカウント(プライベート用アカウント)を利用する場合はgit@以下をgithub-subとする必要があります。

# メイン
$ git remote add origin git@github:<ACCOUNT_NAME>/<YOUR_REPSITORY>.git
# サブ
$ git remote add origin git@github-sub:<ACCOUNT_NAME>/<YOUR_REPSITORY>.git

後は以下の記事の要領で、git configを変更しておけばOKです。

それでもエラーが出る場合

上記手順で上手くいかなかった場合、以下の記事が参考になるかもしれません。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3