VsCodeとGitHubをSSH認証で連携する(Permission denied関連)

## 前提
- VsCodeを入れている
- GitHubにアカウントがある

以下を参考にしました
- ## [VSCodeとgitを連携してpushできるようにするまで](https://masatakashiwagi.github.io/portfolio/post/vscode_git_connect/)
- ## [gitでPlease make sure you have the correct access rights and the repository exists. が出た時の対処法](https://qiita.com/GakuNaitou/items/81dbbd3ea6211af71648)
- ## [SSH Keyを作成してGitHubなどに接続してみる](https://qiita.com/takayamag/items/9818f9b5cb1fad77e583)


以下１〜３余談なので飛ばして大丈夫です

## 1. SSH認証の前にSSHって何？（飛ばしてOK）
[説明できないのでコチラを参考にどうぞ](https://wa3.i-3-i.info/word19681.html)
## 2. SSH認証されてるかの確認方法（VscodeとGitHubが連携されているかの確認）
↓SSH認証している状態
![スクリーンショット 2022-04-17 15 22 25](https://user-images.githubusercontent.com/79749395/163704128-08e4eeb3-2557-446c-9917-ab2efc1a1325.png)
↓確認するコマンド（ターミナルで）
~~~
ssh -T git@github.com
~~~
認証されていると下記のが画像のようになる（pwdは必要ない）
[pwdって何？：現在地確認コマンド](https://wa3.i-3-i.info/word11161.html)
![スクリーンショット 2022-04-17 15 47 01](https://user-images.githubusercontent.com/79749395/163703963-1c998851-9a4b-459d-8bbc-fcf08b815501.png)

## 3. SSH認証されてない時
↓公開鍵を削除するとどうなるか試す
![スクリーンショット 2022-04-17 15 28 09](https://user-images.githubusercontent.com/79749395/163704218-9cacd9b1-b2e7-4e67-8817-6acbdcacb813.png)
![スクリーンショット 2022-04-17 15 28 23](https://user-images.githubusercontent.com/79749395/163704250-bb79d64c-c564-4ec6-943c-0e9ff2517b41.png)
これで削除
![スクリーンショット 2022-04-17 15 28 43](https://user-images.githubusercontent.com/79749395/163704268-16856c01-6de8-4723-9601-95d1f688a54b.png)
もう一度GitHubとの連携を確認
![スクリーンショット 2022-04-17 15 29 05](https://user-images.githubusercontent.com/79749395/163704294-3444f025-ed86-40e6-bed5-49a1b65161c7.png)
![スクリーンショット 2022-04-17 16 00 56](https://user-images.githubusercontent.com/79749395/163704326-1859f5cf-26bb-44af-aeff-c997246c2b83.png)


## 4. ここから本番
ターミナルで
~~~
cd ~/.ssh
~~~

で.sshディレクトリに移動するが



> ※もし下記のように出た場合（sampleとなっている場所が.
ssh）

> ![スクリーンショット 2022-04-17 16 20 27](https://user-images.githubusercontent.com/79749395/163704825-ee87615b-88f4-44b1-a93a-5151d04589b0.png)

> つまり下のように
> ~~~
> cd: no such file or directory:.ssh
> ~~~
> 表示された場合、
> ~~~
> mkdir .ssh
> ~~~
> ### で隠しディレクトリ.sshディレクトリを作成できる
> また、隠しディレクトリは⌘+Shift＋ドットで確認できる

> ちゃんと.sshディレクトリに入ってるかpwdコマンドで一応確認

> ![スクリーンショット 2022-04-17 21 58 34](https://user-images.githubusercontent.com/79749395/163715336-3591bb8e-3804-4226-983e-c14201747d9c.png)

.sshディレクトリに移動した後
~~~
code .
~~~
これでVsCodeが開いた
[code .について](https://qiita.com/kitutune/items/9ef59759a04f4b0e3eff)
![スクリーンショット 2022-04-22 6 54 46](https://user-images.githubusercontent.com/79749395/164558284-0bee0f96-4970-46fe-ba69-bd02cada5fda.png)




## 5. SSH接続の公開鍵・秘密鍵を作成する(メールアドレスがわからない場合の確認方法も記載)

~~~
ssh-keygen -t rsa -b 4096 -C "<メールアドレス>" -f github_rsa
~~~
自分の場合
~~~
ssh-keygen -t rsa -b 4096 -C "p.k~~~~~~~~~@gmail.com" -f github_rsa
~~~
password
作成とか求められても全てEnterのみ
![スクリーンショット 2022-04-22 6 57 09](https://user-images.githubusercontent.com/79749395/164558831-dff6f40b-d6ff-428b-b3b6-3c6e6bf1c92d.png)


これで鍵を作成できた
> ※ [メールアドレスがわからない場合はコチラ](https://qiita.com/kitutune/items/421ddf16279a54ace5aa)

> または下記でも多分確認できる
> ~~~
> git config -l
> ~~~
> ![スクリーンショット 2022-04-17 22 36 49](https://user-images.githubusercontent.com/79749395/163716790-b0652687-25b1-4dec-ba3a-e392a367f73c.png)

## 6. ssh-agentにSSH keyを登録
ssh-agentとは毎回SSH認証する際に確認が入るのを全て自動で行なってくれる便利な機能くらいの認識[参考はこちら](https://laboradian.com/how-to-use-ssh-agent/#2_ssh-agent)
下記の３つのコマンドを１つずつ行う（↓画像参照）
ちなみにevalはしなくてもいい（ssh-agentというプログラムの存在を確認している）
[evalとは？](https://mayonez.jp/topic/1088770#num_6918886)
~~~
eval "$(ssh-agent -s)"
ssh-add --apple-use-keychain ~/.ssh/id_rsa
touch ~/.ssh/config
~~~
![スクリーンショット 2022-04-22 7 15 20](https://user-images.githubusercontent.com/79749395/164560500-9831c609-266a-4263-97b5-cd544db082b9.png)
その後、作成したconfigにVsCode上で下記を記入（今回はGitHubとの連携なので他は追加したければ）[参考にしたのはこちら](https://qiita.com/takayamag/items/9818f9b5cb1fad77e583)
~~~
Host github
 User git
 HostName github.com
 IdentityFile ~/.ssh/id_rsa

Host gitlab
 User git
 HostName gitlab.com
 IdentityFile ~/.ssh/id_rsa

Host bitbucket
 User git
 HostName bitbucket.org
 IdentityFile ~/.ssh/id_rsa
~~~
![スクリーンショット 2022-04-22 7 18 19](https://user-images.githubusercontent.com/79749395/164560782-e82fef3e-6bb8-4114-a142-6d1962da0d39.png)


これでssh-agentに追加完了


## 7. GitHubに公開鍵（id_rsa.pub）を登録する

２通りの方法を説明

１つ目
> 公開鍵をコピーするコマンドをターミナルで打つ
> ~~~
> pbcopy < github_rsa.pub
> ~~~


> ![スクリーンショット 2022-04-17 21 30 23](https://user-images.githubusercontent.com/79749395/163714340-2d6a0a69-b56c-4b2d-885f-0c42fc8143a6.png)

2つ目
> 単純にVsCodeからコピーする
> ![スクリーンショット 2022-04-22 7 31 33](https://user-images.githubusercontent.com/79749395/164562249-4ded7dc3-1a90-4916-ba0a-b4c6d19db73f.png)

 ### どちらでも公開鍵をコピーできているのでGitHubの自分のアカウントに貼り付ける↓
![スクリーンショット 2022-04-17 21 33 19](https://user-images.githubusercontent.com/79749395/163714494-e7da04f0-fdc3-4e93-8f80-775ebbb408bc.png)

![スクリーンショット 2022-04-17 21 38 03](https://user-images.githubusercontent.com/79749395/163714572-5fb622dd-c957-4dee-b527-721aa6f4e069.png)
![スクリーンショット 2022-04-17 21 40 51](https://user-images.githubusercontent.com/79749395/163714666-a126f2e6-c996-488c-a9d3-38937afb7e08.png)
![スクリーンショット 2022-04-17 21 44 12](https://user-images.githubusercontent.com/79749395/163714789-ba93fe0b-445b-47d6-886d-78e8d6443395.png)
### これで公開鍵の登録が完了した（公開鍵って名前にしてますが名前はなんでもいいです）

## 8. GitHubにSSH接続する
なんか出る選択肢はyesにする
![スクリーンショット 2022-04-22 7 24 39](https://user-images.githubusercontent.com/79749395/164561496-c397fdad-2df4-43d9-9a64-bfffaf6bd311.png)

## 9. 公開鍵を登録できたか確認する
最後に↓を打ち画像のように返ってきたら無事完了です
~~~
ssh -T git@github.com
~~~
![スクリーンショット 2022-04-22 7 39 24](https://user-images.githubusercontent.com/79749395/164562994-ab4b0a08-11f5-4b29-ad6f-e18e225af6ff.png)



途中モザイク忘れた気もしますが・・・とりあえず前に記事にした時よりはわかりやすくなってたらいいなと思う次第