原因はわかりませんが、突然git push ができなくなって、手動でSourcetreeでのSSHキーの作成からGithubへの再登録を行った。
その忘備録。
問題
Sourcetreeでいつもの通りにコミットした内容をリモートリポジトリにプッシュしたら以下のようなエラーが出た。
念のためターミナルソフト(CUI画面)で再度プッシュしても以下のエラーが出た。
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
解決策
結論、元々Sourcetreeによって作成されていたファイルを削除して(sshディレクトリ内のconfigファイルのSourcetreeによる記述箇所とSourcetreeによって作成されたsshキー)、SSHキーを再度作成して、GitHubに登録したら直った。
以下に手順を示す。
sshディレクトリ内のconfigファイルの修正及び、公開鍵、秘密鍵の削除
configファイルの修正
~/.sshディレクトリ内のconfigファイルをvimでも何でも良いので開くと以下のような記述を見つけることができると思います。
このHost ~GitHub
からAddKeysToAgent ~
までの行を全て削除します。その後configファイルを保存します。

公開鍵、秘密鍵の削除
新しくキーを生成するので、Sourcetreeによって生成されたキーを削除します。
Sourcetreeによって生成される鍵はおそらく、”[your-github-username]-GitHub.pub” と “[your-github-username]-GitHub”になってると思います。
(今回はGitHubを使用していることを想定していますが、Bitbucketでも同じようなファイル名になっていると思います。)
これを削除します。
Sourcetreeでのキーの作成
- Sourcetreeを開いて、(macなら)歯車マークをクリックして「アカウント」をクリックします。
- 問題のアカウントをクリックして、左下の「編集」タブをクリックします。
- キーを削除したので、SSHキーの欄が「キーがありません」などの表示になっていますので、「キーの生成」をクリックして新たに作成します。
- 作成後「クリップボードにコピー」をクリック
- Githubのアカウントで「SSH and GPG keys」の欄を開く
- SSH keysにある問題のSSHを「Delete」する。
- 「New SSH key」をクリック
- Titleは任意に決めてください。Keyに先ほどクリップボードにコピーしたものをペーストして保存して終了です。
以上で終了です。おそらくSourcetreeからプッシュできるようになっていると思います。
それかターミナルで
$ ssh -T git@github.com
でアクセス可能か確認できます。