Git

Sierraにアップデートしたところ、SourceTreeで「Permission denied」が発生した。

あけましておめでとうございます!chrysealmです。
今年も宜しくお願い申し上げます。

MacのOSをSierraにあげたところ、SourceTreeで以下のエラーが発生しました。

先日、仕事で使っているMacのOSをSierraにアップデートしました。
すると、SourceTreeでプッシュしようとした際に次のようなエラーが表示されたのです。

Permission denied (publickey)

最近、Macを2013年のものから2017年のものに交換し、意気揚々と作業をしていただけにショック…。
きちんとSSHキーも作成して登録したのに。。

アップデートの結果、秘密鍵へのパスフレーズが登録されなくなったみたい?

こちらのQiitaの記事[macOS Sierra のSSH接続で、秘密鍵へのパスを覚えてくれない問題]にも書かれていますが、Sierraへのアップデートで秘密鍵に関する挙動が変更になり、Macの方で秘密鍵のパスフレーズを覚えなくなったようです。
その結果、SourceTreeでのssh接続時に秘密鍵を参照できず、エラーが発生していたということでしょうか。

先ほどのQiitaの記事にも解決案が記載されていますが、以下の方法でも一応対処可能です。

【対応方法】
ターミナルからbitbucketに接続(ログイン)します。
以下のコマンドを実行してください。

$ ssh -T git@hogehoge

hogehoge.orgには、~./.ssh/config内のHost部分の名前を書いてください。
例えば以下の場合はhogehogeの部分。

Host hogehoge
    HostName bitbucket.org
    User user名
    PreferredAuthentications publickey
    IdentityFile ~./.ssh/秘密鍵のファイル名
    UseKeychain yes
    AddKeysToAgent yes

接続に成功した場合は以下のように表示されます。

logged in as user名.
You can use git or hg to connect to Bitbucket. Shell access is disabled.

こちらの記事が参考になりました。ありがとうございます。
[memo]ssh_config の Host 指定でちょっとだけはまった話
bitbucketにgitでpushするとPermission denied (publickey).と表示されるときの解決法

終わりに

今回はSierraでのSourceTreeのエラーについて取り上げました。
OSをアップデートする際は何かしらのトラブルに見舞われますね。

それでは、本日はここまで。
また次回お会いしましょう!