SourceTreeでGitHubアカウントを複数設定した場合、SSH接続エラーになることがあります。
SourceTreeとGitHubの組み合わせでのSSH接続エラーの原因はいくつかあるので、今回解消できるケースの前提を共有した上で、原因と解消方法を記載したいと思います。
状況の前提
SourceTreeで設定しているGituHubアカウントが一つのみでSSHエラーが出ている場合は、今回とは別の原因も絡んでいる可能性があります。
PCを再起動して、最初に接続したGitHubアカウントではエラーが出ない理由は、次の項目「SSH接続エラー原因」で説明しますので、ご参考ください。
エラー内容
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
接続先の公開鍵の権限が拒否されて、リモートリポジトリが読み取りできません。
という内容のエラーが表示されます。
SSH接続エラー原因
複数のGitHubアカウントを設定した場合にSSH接続エラーになる原因は、「最初に接続したアカウントのSSHキーを、次に接続するアカウントも使用するようになってしまっている。」ことにあります。
GitHubのアカウントに紐づいたSSHキーではないためエラーになっている状態です。
SSH接続エラー解消方法
2つの対応をする必要があります。
ひとつは、configファイルの設定追加。
もう一つは、リモート接続のパスの書き換えです。
configファイルに秘密鍵の指定を追記する
「/Users/ユーザー名/.ssh」にあるconfigファイルの接続したいアカウントに、「IdentitiesOnly yes」という記述を追加します。
GitHubのホストごとに、指定された秘密鍵のみを使用する設定を追加した状態です。
# --- Sourcetree Generated ---
Host mmapple-GitHub
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/mmapple-GitHub
UseKeychain yes
AddKeysToAgent yes
IdentitiesOnly yes // この記述を追加します
# ----------------------------
リモートのSSHパスを修正する
GitHubのリポジトリ画面に表示されるSSHのパスは、以下のような形式になっています。
git@github.com:[GitHubユーザ名]/[リポジトリ名].git
具体例)
git@github.com:mmapple/full_screnn_slide01.git
このままの記述でSSH接続すると、エラーになる場合があります。
理由は、ローカルPCの.sshのconfig設定の情報とは異なるためです。
今回のconfigファイルの設定内容では、Hostは「mmapple-GitHub」になっているため、接続指定が異なっている状態です。

GitHubのデフォルト設定から、configで個別の変更を加えているため、リモート接続のパスもconfigに合わせて書き換えます。
git@github.com
↓
mmapple-GitHub (.ssh/configに記載のHost名)
具体例)
git@github.com:mmapple/full_screnn_slide01.git
↓
mmapple-GitHub:mmapple/full_screnn_slide01.git

アカウント分の.ssh/configと各リポジトリのリモート接続パスの書き換えで、エラーが解消されると思います。