SSHのパスコードを忘れた場合の再作成手順

## SSHとは何か？
他のコンピュータを遠隔操作するための通信を`暗号化`して送る仕組みのことです。
逆に暗号化されていない`平文`で通信をする仕組みの一つがtelnetです
    
## GitHubでなぜSSH？
通常GitHubではプットするたびにパスコードの認証が求められます。回避するには
秘密鍵と公開鍵を作成し、公開鍵をGitHubに登録する必要があるからです。

## ターミナルでSSHディレクトリを開いてSSHを削除する方法

SSHキーは`~/.ssh`に保存されているので
次の方法で開くことができます

1. カレントディレクトリを`~/.ssh`にする
    ```
    cd ~/.ssh
    ```

1. カレントディレクトリをFinderで表示
    ```
    open . 
    ```
1. マウスで選択してから削除する
   
![スクリーンショット 2022-10-05 15.42.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2765288/25edb06a-5307-e0ba-2b63-4d12176503e9.png)


## 新しいSSHキーを生成する

次のコマンドを実行します
Ed25519はデジタル署名アルゴリズムの名称です。

```
ssh-keygen -t ed25519 -C "GitHubに登録したメールアドレス"
```

エンターキーを押すことで次のメッセージが表示されますので
さらにエンターキーを押すことでSSHのデフォルトディレクトリが
ファイルの場所として登録されます

```
Enter a file in which to save the key
//訳：キーを保存するファイルを入力してください
```

次はパスフレーズを登録登録を求められるので
任意のパスフレーズを入力してからエンターキーを押します

```
Enter passphrase (empty for no passphrase): 
// 訳：パスフレーズを入力してください (パスフレーズがない場合は空欄):
Enter same passphrase again: 
// 訳：同じパスフレーズをもう一度入力してください：
```

出来上がると次の表示が出力されます
また`~/.ssh`にファイルが作成されます


![スクリーンショット 2022-10-05 16.51.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2765288/71f208ee-f74e-420f-d4d5-4d61c27396d1.png)

![スクリーンショット 2022-10-05 16.58.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2765288/28664568-bf95-712f-6769-02a158680e2f.png)


## GitHubアカウントへ作成したSSHキーを追加します

GitHubにSSHキーを追加するには、ファイルの中身を
GitHubの設定画面にコピー＆貼り付けする必要があります。

- コマンドでSSHファイルの内容をコピーします
  ```
    pbcopy < ~/.ssh/id_ed25519.pub
    //　ファイル名が異なる場合は修正します
  ```
- GitHub画面右上アイコンから`setting`を開きます
  
  ![スクリーンショット 2022-10-05 22.52.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2765288/4658ead0-acd0-69cd-8c85-77dc869ef137.png)


- サイドメニューの`SSH and GPG keys.`から
  `NEW SSH Key`を進みます

    ![スクリーンショット 2022-10-05 22.57.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2765288/9ca04af9-8d84-4f1f-d5c3-d246f68de973.png)

![スクリーンショット 2022-10-05 22.58.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2765288/ccc57a60-b447-15ed-0856-423e855fda4e.png)


- Titleへ任意の名前を入力、Keyへコピーした内容を貼り付けます 
  貼付け後は`Add SSH Key`を押します
  ※GitHubのパスワードが求められることがあります

![スクリーンショット 2022-10-05 22.59.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2765288/c0d3e801-5c9f-71f5-6edd-ef61cc6f9276.png)


- SSHでGitHubに接続できるか確認します
  実行するとSSHのパスフレーズが求められるので
  入力してエンターを押します
  
```
ssh -T git@github.com
// sshでGitHubに接続できるか確認します
```
- 次のメッセージの場合は`Yes`と入力しエンターを押します
- `~/.ssh`へ接続許可リストとしてファイルが作成されます
  （known_hosts）
```
The authenticity of host 'github.com (20.27.177.113)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? 

//ホスト 'github.com (20.27.177.113)' の信頼性を確立できません。
//このキーは他の名前では知られていません
//接続を続行してもよろしいですか (はい/いいえ)


Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
Enter passphrase for key 

// 警告: 既知のホストのリストに「github.com」(ED25519) が
// 永久に追加されました。
// キー「/Users/ishiyamatakuya/.ssh/id_ed25519」の
// パスフレーズを入力してください:
```
- 次のメッセージが出れば接続成功です

```
Hi GitHubのユーザー名! You've successfully authenticated
```