はじめに
結論としては Sourcetree 側の不具合だと思われます。単純な不具合回避方法としてご覧ください。
(Sourcetree を批判するものではありません)
環境と現象
環境:
- macOS Sierra 10.12.6
- Sourcetree 2.6.3
-
brew cask
でインストール - GitHub、Bitbucket で確認
- Sourcetree 側に GitHub アカウントを登録
- Sourcetree 側で SSH 鍵を作成 & GitHub 登録
現象:
macOS を再起動すると SSH で GitHub 等にアクセスできなくなる
-
Permission denied (publickey).
と言われる - Sourcetree 経由でも コマンド経由でも同様
原因と対策
原因は Sourcetree 側で ~/.ssh/config
に自動追加される設定です。
~/.ssh/config
# --- Sourcetree Generated ---
Host AkkeyLab-GitHub
HostName github.com
User AkkeyLab
PreferredAuthentications publickey
IdentityFile ~/.ssh/AkkeyLab-GitHub
UseKeychain yes
AddKeysToAgent yes
# ----------------------------
User
の項目が GitHub アカウントのものになっていますが、 git
にしてあげなければなりません。
したがって、以下のように変更することで再起動しても SSH 接続ができるようになります。
~/.ssh/config
# --- Sourcetree 修正版 -------
Host AkkeyLab-GitHub
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/AkkeyLab-GitHub
UseKeychain yes
AddKeysToAgent yes
# ----------------------------