Sourcetreeでgithubからcloneできもはん! って時にconfigを見ようというお話
- 2018.08.02
- 開発
- GitHub, Sourcetree
唐突な薩摩弁。大河ドラマ大好き系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」が付いてなくて名前解決できないことがあるらしいので、そちらも要チェック!
ゲーム開発の攻略チャートを作りました!
-
前の記事
君はペルソナが3DダンジョンRPGだったことを知っているかい? 2018.07.24
-
次の記事
今だからこそ好き勝手妄想しながら語りたい真女神転生1の世界【Part1】 2018.08.02
コメントを書く