【Sourcetree(Version 2.7)】Github リポジトリをURLクローン出来ないとき

gitクライアントのSourcetreeで、GithubリモートリポジトリをURL(ssh方式)からクローンする際発生した権限エラーの解決手段をメモします。

環境 : Mac OS 10.13.6 、Sourcetree (Version 2.7)

Sourcetreeを開き、ファイル > 新規 > ULRからクローンで、
コピーしておいたgithubリポジトリのURLを入力して作成を試みると…

ダイアログに、ソースパス、またはソース URLとして正しくありません。と表示され、同ダイアログ上高度なオプションを開くと

Permission denied… 権限エラーでクローン出来ない。
といったようなメッセージが表示されている。

ローカルPCとgithubアカウントの紐づけるための公開鍵認証の設定が完了していませんでしたので、そちらを行いました。
(リポジトリに対して通信が許可されたクライアントであるということを証明する)

ターミナルを開き、
ssh鍵ペア作成のコマンドを入力
(Githubアカウントに使用しているメールアドレスを入力)

ssh-keygen -t rsa -b 4096 -C メールアドレス

パスフレーズを入力して、指定の場所へ鍵ペアを作成する。

Enter file in which to save the key (/Users/ken/.ssh/id_rsa):

上記、:の隣に任意で鍵の名前を決められるようです。(指定しなければデフォルト名id_rsaで上書きされます)

作成完了した公開鍵(.pubの方)の中身を開き、コピーする。

cat (公開鍵のパス)

ssh-rsa から メールアドレスの終わりまでコピーします。

githubアカウントページを開き、右上のアイコンから
settings > SSH and GPG keys > New SSH key(緑のボタン)をクリックして以下の画面を開く。

Keyの箇所にコピーしておいた、公開鍵の内容をペーストして Add SSH keyをクリック。

前の画面でこのように表示されていれば公開鍵の登録完了。

 

再び、Sourcetreeからリポジトリクローン…
まだエラーが消えません。。

調べると、Sorcetreeの方で問題が上がっているようです。
https://jmcouillard.com/blog/sourcetree-2-7-and-osx-authentication-issue

 

上記のページの通り、手順を実行しました。

ターミナルを開き、パッケージマネジャーのhomebrewを操作(時間がかかります)

brew tap theseal/ssh-askpass
brew install ssh-askpass

上記の操作で必要なパッケージのインストールが終了したら、
以下のコマンドを実行して鍵のパスフレーズをキーチェーンに登録します。

ssh-add -K
鍵ペア作成時に任意の名前を使用している場合は下記のように.pubでない方の名前を-Kの後に指定します。
(名前がgithubの場合)
ssh-add -K github

パスフレーズを入力して、Identity addedと表示されたらOK
この時点でもう一度、Sourcetreeからのリポジトリクローンを試みたところエラーが消えリポジトリ作成に成功しました◎

(追記)
他の事象でリポジトリへコミットをプッシュ出来ない際も同様の手順で解決しました。
(push出来なかったときのSourceTreeのエラーメッセージ)

参考
https://teratail.com/questions/117050
https://qiita.com/tnatsume00/items/e147662368d02e6416d2

Follow me!