SourceTreeでプッシュした際、「Permission denied (publickey)」(パーミッションが拒否されました (publickey))と出たときの対処法

【原因】

MACを再起動すると、秘密鍵の登録が削除されてしまうため。

再起動したらその都度、秘密鍵を再登録しなければならない。でもそれは面倒なので、再起動しても削除されない&自動で読み込んでくれるように設定する。

  1. SSHキーの確認

    //ターミナルを開き、以下を入力(VSCodeのターミナルからでOK)
    cd ~/.ssh
    
    //「araai@MacBook-Pro .ssh %」になったら以下を入力(SSHキーの登録履歴確認コマンド)
    ls -al ~/.ssh
    
    //多分こんな感じに履歴が表示される(太字が今回使うもの)
    //GitHub関連のものがなければ登録されていないということなので、SSHキーの登録から行う
    total 40
    drwx------   7 araai  staff   224  1 21 11:43 .
    drwxr-xr-x@ 44 araai  staff  1408  5  2 14:33 ..
    -rw-------   1 araai  staff  3499  1 21 11:38 **araaiko-GitHub**
    -rw-r--r--   1 araai  staff   801  1 21 11:38 araaiko-GitHub.pub
    -rw-r--r--@  1 araai  staff   238  1 21 11:38 config
    -rw-------   1 araai  staff   656  1 21 11:43 known_hosts
    -rw-r--r--   1 araai  staff    92  1 21 11:43 known_hosts.old
    
  2. SSHキーを再登録する

    //以下コマンドを入力で再登録が完了
    //「araaiko-GitHub」は登録したいキー名に変換すること
    ssh-add -K ~/.ssh/araaiko-GitHub
    
    //以下文章が表示されればOK!
    Identity added: /Users/araai/.ssh/araaiko-GitHub (araaiko-GitHubのために macOS の Sourcetree によって生成された)
    
  3. 再起動しても自動でSSHキーが読み込まれるようconfigを編集する

    //続けて、以下コマンドを入力
    vim ~/.ssh/config
    
    //以下のようなconfig編集画面に遷移する
    # --- Sourcetree Generated ---
    Host araaiko-GitHub
            HostName github.com
            User git
            PreferredAuthentications publickey
            IdentityFile /Users/araai/.ssh/araaiko-GitHub
    # ----------------------------
    
    //追加したいところで適当なキー(aとか)を押すと文字が入力できるようになるし、
    //Enterで改行もできるようになるので、以下を追加する
            UseKeychain yes
            AddKeysToAgent yes
    
    //追加するとこんな感じになる
    # --- Sourcetree Generated ---
    Host araaiko-GitHub
            HostName github.com
            User git
            PreferredAuthentications publickey
            IdentityFile /Users/araai/.ssh/araaiko-GitHub
            UseKeychain yes
    				AddKeysToAgent yes
    # ----------------------------
    
    //編集を終わらせる際は、「esc」キーを入力し、その後「:」キーを入力、その後に「w」と「q」
    を入力して「Enter」で完了
    esc
    ↓
    :
    ↓
    wq
    ↓
    Enter
    

    ▼参考

    既存の SSH キーの確認 - GitHub Docs

    macOS で再起動しても ssh agent に秘密鍵を保持させ続ける二つの方法 - Qiita

    [備忘録]~/.sshの作り方とconfigの設定 - Qiita

    sshのconfigを編集して普段のssh接続を楽にする