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を作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。


ゲームを作り始めた時にぶつかる壁である「何をしたら良いのか分からない」という悩みを吹き飛ばしましょう!