こんにちは。ネットショップコンサルタント「たぶ」(@yusuke_tanaka34)です。
今日は『GitとGitHubが連携できない状態を解決する方法』をご紹介していこうと思います!
今回の記事は、
- GitとGitHubがうまく連携できない方
- 「Webプログラミングが面白いほどわかる本」で学習している方
- プログラミングの勉強をしている方
におすすめです!

分かります… 僕も「Webプログラミングが面白いほどわかる本」でプログラミングの勉強をしたのですが、GitとGitHubの連携でつまづきました…
そして、Googleでいろいろと検索したのですが、1時間以上解決することができなかったんですよね…
プログラミングの勉強をしていてつまづくと、けっこう心が折れそうになりますよね…
今回のGitとGitHubが連携できない状態を解決するには、1つのファイルを作るだけで簡単に解決することができちゃうんです。
今回、この記事に書いてある『GitとGitHubが連携できない状態を解決する方法』を読めば、GitとGitHubをうまく連携してcloneまでいけると思います!
結論からお伝えしますと、GitとGitHubをうまく連携するには、
「.ssh」に「Known_hosts」というファイルを追加し、GitHubのURLを承認済みのホストに追加することで連携することができます。
思ったより簡単に解決できると思うので、ぜひGitとGitHubを連携して、次の項目に進んでくださいね。
それでは、『GitとGitHubが連携できない状態を解決する方法』を詳しくご紹介していきますね。
スポンサーリンク
GitとGitHubが連携できない状態とは

「Webプログラミングが面白いほどわかる本」で学習を進めていくと、「Chapter3」の「section03」で「GitとGitHubの連携」という章があります。(P182)
このページまではGitHubの使い方を学んできたのですが、ここからはGitの使い方を解説してくれます。
「Git」とは、バージョン管理を行うソフトウェアのことを言います。
プログラムを書き換えると、どんどんデータが書き換わっていきますよね。
「Git」は、データを書き換えるたびに番号をつけて保存をし、いつでも見たり呼び出したりできるソフトです。
GitとGitHubを連携していく中で、「GitHubからクローンしてみよう」という項目があります。(P187)
「クローン」とは、GitHubのリポジトリをコピーして、自分のパソコンのLinux内にリポジトリを作ることを言います。
ちなみに「リポジトリ」とは、ソースコードやファイルを入れておく場所のことを言います。
流れとしては、
- GitHubでリポジトリをコピー
- コンソールでcloneを入力し実行
となるのですが、
cd workspace git clone git@github.com:${あなたのusername}/assessment.git
と入力し、
Are you sure you want to continue connecting (yes/no)?
で、Enterを押すと、
Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
と表示されてしまいます。
上記の意味としては、
ホストキーの検証に失敗しました。
致命的:リモートリポジトリから読み取ることができませんでした。
正しいアクセス権のあるリポジトリが存在することを確認してください。
とのことです。

なぜホストキーの検証に失敗するのかは分かりませんが、リポジトリにアクセス権がないということですね。
この状態ではまったく解決策が分からなかったのですが、1時間以上Googleで検索しながら検索結果に出てきたページに書いてあることを片っ端からやってみました。
最終的には、なんとかGitとGitHubを連携することができました。
それでは、次に具体的な解決方法をご説明したいと思います。
スポンサーリンク
GitとGitHubを連携する方法

GitとGitHubを連携する方法は、簡単に言うと『「.ssh」ディレクトリに「known_hosts」というファイルを作り、「github.com」というホストを追加する』という方法です。
手順はとても簡単で、以下のコードをRLoginに打ち込むだけです。
ssh-keyscan -H github.com >> ~/.ssh/known_hosts
「ssh-keyscan」は、複数ホストのSSH公開鍵を集めてくれるコマンドです。
「-H」というオプションは、ホスト名をハッシュ化してくれるオプションです。
ちなみ「ハッシュ化」とは、文字列を「ハッシュ関数」というルールに基づき、別の文字列(ハッシュ値)に変換することを言います。
暗号化みたいなイメージです。
「github.com >> ~/.ssh/known_hosts」の部分で、「known_hosts」ファイルに「github.com」を追加しています。
Enterを押すと、
# github.com:22 SSH-2.0-babeld-○○○○○○○○ # github.com:22 SSH-2.0-babeld-○○○○○○○○ # github.com:22 SSH-2.0-babeld-○○○○○○○○
(「○○○○○○○○」の部分は英数字の文字列)
という行が表示され、「known_hosts」に「github.com」が追加されました。
この状態で、
cd workspace git clone git@github.com:${あなたのusername}/assessment.git
とコマンドを打ち込むと、
Warning: Permanently added the RSA host key for IP address '13.114.40.48' to the list of known hosts. remote: Enumerating objects: 25, done. remote: Total 25 (delta 0), reused 0 (delta 0), pack-reused 25 Receiving objects: 100% (25/25), 8.26 KiB | 0 bytes/s, done. Resolving deltas: 100% (8/8), done. Checking connectivity... done.
という文章が表示されます。
上記の文章を翻訳すると、
警告:IPアドレス「13.114.40.48」のRSAホストキーを既知のホストのリストに恒久的に追加しました。
リモート:オブジェクトの列挙:25、完了。
リモート:合計25(デルタ0)、再利用0(デルタ0)、パック再利用25
オブジェクトの受信:100%(25/25)、8.26 KiB | 0バイト/秒、完了。
デルタの解決:100%(8/8)、完了。
接続を確認しています…完了しました。
とのことです。
これでGitとGitHubを連携することができ、cloneをすることができました。
お疲れ様でした!
以上が「GitとGitHubを連携する方法」でした。
スポンサーリンク
【まとめ】GitとGitHubが連携できない状態を解決する方法
今回は『GitとGitHubが連携できない状態を解決する方法』というテーマでお送りしてきました。
今回の記事をまとめると、GitとGitHubが連携できない状態を解決する方法は、
「.ssh」ディレクトリに「known_hosts」というファイルを作り、「github.com」というホストを追加するという方法
でした。
具体的には、
ssh-keyscan -H github.com >> ~/.ssh/known_hosts
とコマンドを打ち込むことで、「known_hosts」ファイルに「github.com」を追加することができました。
今回は「Webプログラミングが面白いほどわかる本」の内容について解説いたしました。
うまくcloneまで進むことができましたでしょうか?
他にも分からないところがあったり、つまづいた場所がありましたら、お問い合わせまでご連絡ください。
以上、ネットショップコンサルタントの「たぶ」でした。
こちらの記事もおすすめです。
Javaの勉強をしていると、package文でコンパイルエラーが出てしまう時があります。そんな時の解決方法を解説しています。
Javaのコンパイルエラーが文字化けしていて、何のエラーか分からない時があります。エラーの文字化けを直す方法をまとめました。
「MySQLって何?」というところを解説してみました。データベースを操作するには必須の知識です。
MySQLを操作していると、GROUP BY句でエラーが出ることがあります。その解決方法を詳しくご説明しています。