SourceTreeでプッシュした際、「Permission denied (publickey)」(パーミッションが拒否されました (publickey))と出たときの対処法
【原因】
MACを再起動すると、秘密鍵の登録が削除されてしまうため。
再起動したらその都度、秘密鍵を再登録しなければならない。でもそれは面倒なので、再起動しても削除されない&自動で読み込んでくれるように設定する。
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
SSHキーを再登録する
//以下コマンドを入力で再登録が完了
//「araaiko-GitHub」は登録したいキー名に変換すること
ssh-add -K ~/.ssh/araaiko-GitHub
//以下文章が表示されればOK!
Identity added: /Users/araai/.ssh/araaiko-GitHub (araaiko-GitHubのために macOS の Sourcetree によって生成された)
再起動しても自動で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
▼参考
macOS で再起動しても ssh agent に秘密鍵を保持させ続ける二つの方法 - Qiita