同じPCで複数のGithubのアカウントを利用する方法

# 同じ PC で複数の Github のアカウントを利用する方法

- 一台のコンピューターで複数の GitHub アカウントを使用する場面があります。新しいアカウントを作成し、元のアカウントには適さないものを投稿することもあるかもしれません。私だけでしょうか…？ このたび、私の既存のアカウントにあるリポジトリを新しいアカウントに移行する過程で、私のコンピューターでの設定が完了しましたが、このような場合にどう対応すればよいかについてまとめてみました。

## 目次

1. [SSH キーの生成](#1-ssh-キーの生成)
2. [GitHub に新しい公開キーを追加する](#2-github-に新しい公開キーを追加する)
3. [SSH 設定を行い SSH 接続テストをする](#3-ssh-設定を行い-ssh-接続テストをする)
4. [SSH を通じてリポジトリに接続する](#4-ssh-を通じてリポジトリに接続する)
5. [まとめ](#5-まとめ)
6. [参考資料](#6-参考資料)

## 1. SSH キーの生成

1. Git Bash を起動します。
2. SSH キーを管理するディレクトリに移動し、既存のファイルリストを確認します。

```bash
cd ~/.ssh
ls -al # すべてのファイルをリスト形式で表示
```

3. SSH キーを生成します。GitHub で使用する**メールアドレス**と**生成されるキーの名前**をそれぞれ指定します。コマンドは以下の通りです。

```bash
ssh-keygen -t rsa -C "user1@example.com" -f "id_rsa_user"
```

4. 上記のコマンドを実行すると、セキュリティパスワードの入力を求められますが、Enter キーを押すとパスワードなしで使用できます。

```bash
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
```

5. SSH キーの生成が完了したかを確認します。生成されたキーの名前を tmp と指定した場合、tmp および tmp.pub が追加されたことが確認できます。.pub 拡張子が付いているファイルが公開キーのファイルで、付いていないファイルが秘密キーです。

```bash
ls -al ~/.ssh
```

## 2. GitHub に新しい公開キーを追加する

1. 公開キーをアカウントに追加するプロセスを行います。".pub"が付いたファイルが公開キーです。

2. 公開キーをコピーするために、VSCode で公開キーのファイルを開いて内容をコピーします。VSCode を使用していない場合は、使用しているエディターを使用して内容をコピーしてください。

```bash
code ~/.ssh/id_rsa_user.pub
```

3. GitHub にログインした後、プロファイルの上部にある写真をクリックし、設定をクリックします。
   ![Setting](https://blog_workers.forever-fl.workers.dev/662e5dd48415e95ce08e8b94_240428-232547_01_01_Setting.png)
4. 左側のサイドバーメニューから「SSH and GPG keys」を選択し、右上の「New SSH key」ボタンをクリックします。
   ![SSH_and_GPG_keys](https://blog_workers.forever-fl.workers.dev/662e5dd48415e95ce08e8b94_240428-232547_01_02_SSH_and_GPG_keys.png)
5. 「Title」には公開キーを説明する言葉を入力します。私の場合は「my-desktop」と設定しています。そして、「Key」部分にコピーした公開キーを貼り付けた後、下の「Add SSH Key」をクリックします。
   ![Add_new_SSH_Keyt](https://blog_workers.forever-fl.workers.dev/662e5dd48415e95ce08e8b94_240428-232547_01_03_Add_new_SSH_Key.png)

## 3. SSH 設定を行い SSH 接続テストをする

1. Git Bash を起動します。

2. SSH 設定ファイルを作成します。"~/.ssh"に位置する必要があります。既存の設定ファイルが存在する場合は修正し、存在しない場合は新しく作成します。

```bash
cd ~/.ssh
code config
```

3. SSH 設定ファイルの内容は次のように記述します。これ以降に追加する SSH があれば、以下に追加します。

```bash
# userのためのSSH設定
Host github.com-user
    HostName github.com
    User user
    IdentityFile ~/.ssh/id_rsa_userA
```

> - `Host`: SSH 接続に使用される代表名です。
> - `HostName`: GitHub のドメインです。
> - `User`: GitHub ユーザー ID です。
> - `IdentityFile`: 以前に生成した個人キーのパスです。

4. SSH 接続をテストするために以下のコマンドを実行します。"Hi user! You've successfully authenticated, but GitHub does not provide shell access."と表示されれば、接続に成功したことです。

```bash
ssh -T git@github.com-user
```

## 4. SSH を通じてリポジトリに接続する

1. GitHub でリポジトリを作成し、その SSH アドレスを取得します。
   ![SSH_Address](https://blog_workers.forever-fl.workers.dev/662e5dd48415e95ce08e8b94_240428-232547_01_04_SSH_Address.png)
2. 取得した SSH アドレスと config に登録した ID を組み合わせてリモートアドレスを登録します。例えば、コピーしたアドレスが "git@github.com:foreverfl/libraries.git" であり、SSH config に登録したユーザーが user であれば、次のように git remote add コマンドを使用してリポジトリアドレスを登録します。

```bash
git remote add origin git@github.com-user:foreverfl/libraries.git
```

3. `git push`を使用して現在のフォルダーとリポジトリが接続されているかを確認します。 `git init`を使用した初期化、`git add .`を通じたステージングエリアへの追加、`git commit -m [message]`によるコミットなどの説明は省略しました。

## 5. まとめ

1. 複数のアカウントを一台のコンピューターで使用するためには SSH を利用する必要があります。
2. SSH を利用するためには、個人キーと公開キーを生成し、個人キーは自分のコンピューターに登録し、公開キーは GitHub に登録する必要があります。
3. `git remote add`で自分が使用したいリポジトリを登録して使用します。

皆さんも GitHub で裏垢を作って楽しいコーディングを楽しんでみてくださいね。

## 6. 参考資料

- [한 컴퓨터에서 github 계정 여러개 사용하기](https://usingu.co.kr/frontend/git/%ED%95%9C-%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%9C-github-%EA%B3%84%EC%A0%95-%EC%97%AC%EB%9F%AC%EA%B0%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/)
- [同じ PC で GitHub のアカウントを複数利用して切り替える方法](https://qiita.com/manzoku_bukuro/items/c6fc9cbc069fe4a1b776)