MacにGithubアカウントを連携する

備忘録的にコマンド残しておきます。
前提としてGitHubアカウントは既に作成済みとします。


手順は大きく5つです
[1.MacにGitアカウントを登録](#macにgitアカウントを登録)
[2.秘密鍵・公開鍵の作成](#秘密鍵公開鍵の作成)
[3.公開鍵をGitHubに登録](#公開鍵をgithubに登録)
[4.sshのconfig設定を行う](#sshのconfig設定を行う)
[5.SSH接続確認](#ssh接続確認)

***
### MacにGitアカウントを登録
Macに自身のGitのアカウントを登録します。

ターミナルを開いて下記コマンド
・ユーザ名登録
```sh
% git config --global user.name "登録してるユーザ名"
```
・アドレス登録
```sh
% git config --global user.email "登録してるメールアドレス"
```
・確認
```sh
% git config --global -l
```
コマンド押下後↓が出てきたら成功
> user.name="登録してるユーザ名"
> user.email="登録してるメールアドレス"
***
### 秘密鍵・公開鍵の作成
GitHubにターミナルから接続するためにSSH接続設定を行います。
これを設定するためには秘密鍵と公開鍵の作成、公開鍵のGitHub登録が必要です。

ちなみに秘密鍵・公開鍵という言葉を聞いて吐き気を催した仲間のためにざっくり簡単に説明すると
**秘密鍵は自身のPCで持っておくキーです。公開鍵で暗号化された通信を復号化する時に使います。
公開鍵はGitHubと自身のPCで持つPublicなキーです。秘密鍵から生成されたもので、通信を暗号化するときに使います。**
復号化できる鍵は私だけしか持っていないので、宝箱を開けられるのも私だけということです。
しかも公開鍵から秘密鍵を特定するのは現実的に不可能と言われているそうなので高い秘匿性を可能にしているなんかすごいやつなのです。

話がそれました。
ターミナルで以下のコマンドを順次押下していきます。
・秘密鍵と公開鍵を作成する
```sh
% ssh-keygen -t rsa -b 4096 -C "arrown" -f  ~/.ssh/id_rsa_github
```
コマンド解説
-t：作成する鍵の暗号化形式（デフォルトはrsa )
-b：作成する鍵のビット数を指定(-tをrsaで指定した場合はデフォルトが2048になるなど-tで設定した内容で変わる）
-C：コメントの指定
-f：作成後のファイル保存先指定
保存先のファイル名を今回わかりやすいように`id_rsa_github`にしましたが任意でOKです。
`id_rsa`以外の任意の名前にした場合は後ほど記載する[設定](#sshのconfig設定を行う)を行う必要があります。面倒な人は`id_rsa`でいいと思います。（私は石橋を叩く派なので基本的に設定します）

コマンド押下すると以下が表示されるかと思います
> Generating public/private rsa key pair.
> Created directory '/Users/userName/.ssh'.
> Enter passphrase (empty for no passphrase): 


パスワード設定する？って聞かれるので設定したかったらパスワードを、
設定したくなかったらそのままEnterでOKです。

その後以下が表示されていたら鍵の作成完了です！
> Your identification has been saved in /Users/userName/.ssh/githubId_rsa
> Your public key has been saved in /Users/userName/.ssh/githubId_rsa.pub
> The key fingerprint is:
> SHA256:文字の羅列 arrown
> The key's randomart image is:
> +---[RSA 4096]----+
> |&ensp;&ensp;&ensp;&ensp;&ensp;.なんか&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;|
> |&ensp;&ensp;&ensp;&ensp;.キラキラ&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;|
> |&ensp;&ensp;&ensp;.したやつ&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;|
> +----[SHA256]-----+
***
### 公開鍵をGitHubに登録
先ほどの工程で作成した公開鍵をGitHubに登録します。
・公開鍵をコピーする
```ssh
% pbcopy < ~/.ssh/id_rsa_github.pub
```
・GitHubに登録する
右上アイコン▼＞Settings
![スクリーンショット 2022-08-06 0.48.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745096/356d482d-4693-5128-4b23-985f2d98a703.png)
SSH and GPG keys
![スクリーンショット 2022-08-06 0.49.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745096/76395365-5753-2dce-8d87-095d3c4df193.png)
New SSH key
![スクリーンショット 2022-08-06 0.51.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745096/7c4e1b7a-2177-aa2c-d7d4-761762b5b7d5.png)
Title：わかりやすい名前
Key：さっきターミナルでコピーした公開鍵をペースト
Add SSH key
![スクリーンショット 2022-08-06 0.52.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745096/66206a4c-8665-87a1-253b-b46f01e0ec16.png)
登録完了
![スクリーンショット 2022-08-06 0.53.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745096/c83fd721-6add-de88-f14e-9353a991b211.png)
***
### sshのconfig設定を行う
ssh接続をする際、PC側ではデフォルトで「~/.ssh/id_rsa」を見に行くような設定になっています。
公開鍵・秘密鍵ファイル名を任意のものにした場合は、そのことをPC側に設定しないとデフォルトのPC側の設定が優先されてしい、うまくGitHubにSSH接続ができなくなってしまいます。
以下、ターミナルでコマンド打っていきます。
・configファイル作成
```sh
% vi ~/.ssh/config
```
・設定ファイルに書き込み
vi画面が表示されるので、I(アイ）を押してINSERTモードにしてください。
そして以下を書き込み
```sh
Host github github.com
  HostName github.com
  IdentityFile ~/.ssh/"秘密鍵のファイル名"
  User git
```
書き込んだらescapeして、`:wq!`で入力内容を保存します。
***
### SSH接続確認
準備が整ったのでようやく接続確認します！あと一息！！

以下をターミナルに入力します
```sh
% ssh -T git@github.com
```
初めて接続を試みる場合、以下が表示されることがあります。
> The authenticity of host 'github.com (IP ADDRESS)' can't be established.
> RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
> Are you sure you want to continue connecting (yes/no)?

`yes`を入力して
> Hi username! You've successfully authenticated, but GitHub does not
> provide shell access.


が表示されたらOKです！
お疲れ様でした！！！！
***
参考：https://arrown-blog.com/mac-github-ssh/
　　（サイト主様ありがとうございます。）
　　：https://docs.github.com/ja/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection