2019.06.07

Mac版のSourceTreeでプル/プッシュするときに「Permission denied」と言われる場合の対処方法

 コマンドライン苦手系IT人間なので、GitHubはSourceTreeで使っています。 ところが、いつ頃からかわからないのですが、たまにSourceTreeでGitHub(とかGitLabとか)にプル/プッシュしようとすると「Permission denied (publickey)」と言われるようになりました。公開鍵を設定し直すと出なくなるのですが、どうもめんどくさいし気持ちが悪いので対処方法を調べてみました。


原因


 調べたら、Macを再起動すると ssh agent に登録された鍵がまっさらになってしまうことが原因のようでした。なるほどエラーが出たり出なかったりするのはそういうことか……


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

対処方法


 以下のようにssh-addコマンドでGitHub用の秘密鍵を登録してあげればSourceTreeのエラーが出なくなります。


$ ssh-add ~/.ssh/(GitHub用の秘密鍵)

 GitLabも同じ。どうでもいいですが、GitLabはアカウントを追加するときにアカウントのパスワードじゃなくてアクセストークンを使う、ということを毎回忘れて「なんでアクセスできないんじゃぁ……」ってなる。


再起動しても消えないようにする


 ssh-addで登録しても再起動すると設定は消えてしまうので、再起動するたびにssh-addする必要があります。秘密鍵をキーチェインに登録して、キーチェインから自動的に読み込まれるように設定すればおk。


 まず、ssh-addコマンドで秘密鍵をキーチェインに登録します。-K オプションを入れるとキーチェインに追加されます。


$ ssh-add -K ~/.ssh/(GitHub用の秘密鍵)

 続いて .ssh/config に以下の内容を追加します。


Host *
UseKeychain yes
AddKeysToAgent yes

 これで再起動しても自動的に鍵が登録されるようになるハズ。

引用元
icoro
icoro
icoro
新潟を拠点にDIYしてみたり、旅行してみたりしているブログ。メルマガをまとめた電子書籍「いころ放談」も意外と人気。いつのまにかあなたの生活に忍び寄っている、icoro(イコロ)です。

icoroからの
おすすめニュース

過去のニュース

最新号のご案内

  • ハウジングこまち 2019冬・春号
  • 月刊新潟Komachi2019年7月号
  • 最強の新潟ラーメン本
  • ハウジングこまち 2019冬・春号

    30代の夫婦が建てた大満足の家

  • 月刊 Komachi 7月号

    幸せになれる、甘いもの。

  • 最強の新潟ラーメン本

    圧倒的ボリューム!ラーメンムックの決定版が誕生

ログインして
もっと便利に!