Sourcetreeでgithubからcloneできもはん! って時にconfigを見ようというお話

Sourcetreeでgithubからcloneできもはん! って時にconfigを見ようというお話

唐突な薩摩弁。大河ドラマ大好き系Unity開発者のtodo(@Explorers_todo)でございもす。

github、使ってますか?

もともとgithub Gistを目当てにgithubに登録したのですが、チュートリアル作ってるしリポジトリも公開したいよねって思って、webから作成したリポジトリをSourcetreeからcloneしようとしたところ、なんとエラーが。

多分みんながよく見る「ソースパス、またはソースURLとして正しくありません」が表示されました。

実は以前Sourcetreeからgithub連携する話をブログで扱っていたのですが、今になってエラーで繋がりませんとか口が裂けても言いたくなかったので、トラシューすることに。

結論から言っちゃうと、~/.ssh/configの記述に問題がありました。同じようなエラーが出てたら試してみてね。

 

環境

macOS 10.13 High Sierra

Sourcetree 2.7.6

まずはエラーの内容から

冒頭にも書いたのですが、githubでWebからリポジトリを作成しました。

このリポジトリをSourcetreeからクローンしようとすると、「ソースパス、またはソースURLとして正しくありません」が表示されました。本来であれば、「これはGitリポジトリです」が表示されるはず。

エラーの中身は、「git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.」となっており、これがいくつも並んでいました。

認証がうまくいってない……?

デバッグコマンドを使う

まずはssh接続を試してみることに。

上記のコマンドでgithubに繋いでみると、パスフレーズの入力を求められました。ここは鍵の生成時に設定したパスフレーズを入力。

いつもの「認証OKだよ。でもシェルアクセスは勘弁な!(意訳)」が出てきました。あ、「Hi <ユーザ名>! You’ve successfully authenticated, but GitHub does not provide shell access.」のことね。

ssh接続はできてるっぽい。

 

そういえばconfigは?

一応~/.ssh/configの中身を見てみることに。

「# — Sourcetree Generated —」から始まってSourcetreeが作成した記述がありましたが、接続名を定義するHostの部分が鍵の名前になっていました。

その下のHostNameが「github.com」になっているのはOKなんですけど、接続名って鍵の名前でいいのかな……?

と不安になったため、「github.com」に変更しました。Sourcetreeが使ってる接続名分かんないし。

なんて思考停止で挑んでみたら見事ビンゴ。無事クローンできました。

接続名が元から鍵の名前だったかは定かでないのですが、繋がったのでおっけー。Mac本体の再起動後も接続できていたので大丈夫そうです。

原因の予測

これ! と特定するのは難しいのですが、思い当たる原因が一つ。

実はクローンする直前にSourcetreeのアップデートをしちゃったんですよね。

アップデートによってSourcetreeが使う接続名が変わったのか、configの中身が書き換えられたのか。その辺りが原因かなーと。

アップデートは余裕のある時にやっておかなければ……。

まとめ

Macユーザで、Sourcetreeを使っていて、githubに接続しようとしている人は~/.ssh/configの中身を確認してみよう。

特にHostの項目。思わぬ値が入っているかもしれないよ!

あとはHostNameにも「.com」が付いてなくて名前解決できないことがあるらしいので、そちらも要チェック!

アプリ公開までの攻略チャートを作りました!

CTA-IMAGE

「スマホ向けのアプリを作ってみたいけど、何から手を付けていいか分からない!」


そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験から手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。


アプリをリリースする観点から書いているので各アプリストア向けの作業が入っていますが、企画、設計、開発、テスト部分については他のプラットフォームでも使える知識が満載です。


無料で入手できるのでぜひお早めにゲットして、開発をブーストさせてください!