git clone 出来ない( ﾉД`)…おぉー！出来たー( ;∀;)!!!

#**背景…ワタシの素人ぶり**#
![1_こんな感じですワタシ.png](https://qiita-image-store.s3.amazonaws.com/0/237418/6e4b712b-8f07-90f9-12bc-652efa63eec0.png)

1.開発をやり始めた頃、バックアップを取りながら仕事をしていました。
　超アナログにフォルダ毎全部コピーしてバックアップフォルダを量産
　ディクス容量を圧迫するよなー:sweat:っていっぱい溜まったら削除するみたいな
　(事務職が長いワタシはこんなもんだと思って不便を感じてなかったです  )

2.他の人と一緒にプロジェクトをやることになった際に、**[Sourcetree](https://ja.atlassian.com/software/sourcetree)**を使ったバージョン管理を
　教えて頂きました。設定は全てやって頂き、ワタシはコミットしてプッシュとプルをせっせとやる日々:relaxed:

3.プロジェクト終了後も便利だなーとバージョン管理に**Sourcetree**を使い続けていた、ある日
　**[GitHub](https://github.com/)**に公開されているものをリポジトリごとコピーして来て使うことが出来るというのを聞いて
　ワタシもやってみようと**GitHub**のアカウントを作成 :smirk:

4.**GitHub**から**git clone**しようとしたらアクセス権がないと言われて
　調べたら**SSHキー**が登録されてないせいだって…うわぁ**SSHキー**…って何…:scream:　　　こんな感じです。笑

---

ワタシ…分からないことを検索して開いたページがGitHubの画面ってことは数えきれないほどあります。
親切な方の解説の後に、コードはここに置いてますのリンク先がGitHubだったりってのも山ほど
でも、見方が分からなくて今まで閉じてました。苦笑　本当この画面苦手意識しかなかったです。
![jsoupo.png](https://qiita-image-store.s3.amazonaws.com/0/237418/22986133-c1cd-8a2b-25d8-0a8d0f473c41.png)

ワタシの必殺技　**[拡張のGoogle翻訳](https://qiita.com/tedkuma/items/5774f29f09fbf7d2a743)**も全くここでは変換されず、それもさらに苦手意識を助長していました。


でも、やっとわかりました。このページは**Gitのリポジトリを丸ごと公開してくれている**のですね。
ワタシも新しいツールとか作ろうと思ったら、Git管理するために新しいリポジトリを作成して
そこに必要なファイルを追加して、コードを書いてコミットしてプッシュを繰り返して出来あがるのは
**Sourcetree**でイメージがつきます。そうやって、出来あがったものが公開されてるとわかったら、
なんと有難い画面だったんだー:grinning:!!!　って使ってみたくなりました。

##**まず、GitHubにアカウントを登録します**##
[https://github.com/](https://github.com/)にアクセスしてアカウントを登録します。
![Github.png](https://qiita-image-store.s3.amazonaws.com/0/237418/4ab24946-f899-bd23-b0c5-a76fbd346bde.png)

無料のプランを選んでContinueボタンを押す
![プランは無料.png](https://qiita-image-store.s3.amazonaws.com/0/237418/4fd9eeb8-ea47-efa2-d28d-fab9b423735e.png)

色々聞かれています。がスキップしてもいいみたいです。
GitHubをどのように使いますか？とか興味があることを教えてくださいとかそんな質問をされてます。
![ステップ２.png](https://qiita-image-store.s3.amazonaws.com/0/237418/b9ffedae-ad16-c3f2-4518-60cbea276bbc.png)

Start a project を選択
![startproject.png](https://qiita-image-store.s3.amazonaws.com/0/237418/472c00e0-782b-3c95-4552-c9cf593935fb.png)

メールを確認してくださいと言ってます。
![メール.png](https://qiita-image-store.s3.amazonaws.com/0/237418/3a648b42-4fe2-d861-38e9-397ba2706c5c.png)

はい。GitHubからメール届いてました。Verify email addressをクリックすればOKです。
![メアド確認.png](https://qiita-image-store.s3.amazonaws.com/0/237418/1475f9c8-5678-2a78-2082-44dca4f3b66b.png)

新しいリポジトリの作成画面が表示されたので、無事GitHubのアカウントは作成できました。
![new.png](https://qiita-image-store.s3.amazonaws.com/0/237418/91972946-98e5-704a-c21e-44ffea125b87.png)

<details><summary>**アカウントの画像を変える**</summary><div>
ワタシ、何かのサービスにアカウントを作成したら真っ先に画像を変えるっていう性分なもので…
ついでに手順も書いておきます。

右上の画像の脇にある▼をクリックしてSettingsを選びます。
![アイコン変える１.png](https://qiita-image-store.s3.amazonaws.com/0/237418/6d9e154c-b7ef-c488-993d-d5b1e609a210.png)

次に右側のUpload new piutureをクリック
![画像を確認.png](https://qiita-image-store.s3.amazonaws.com/0/237418/1fd531fd-fbd2-9f47-bcee-37c0146ee49f.png)

画像を選択します。
![画像を選べばOK.png](https://qiita-image-store.s3.amazonaws.com/0/237418/e6a1f381-bc0f-ffb3-7437-428cdf5c89fa.png)

画像をいい感じにトリミングしてSet new profile pictureをクリック
![アイコン変える.png](https://qiita-image-store.s3.amazonaws.com/0/237418/80de63ee-ab23-2536-4671-e4e10507e7a2.png)

はい。画像が変わりました。あースッキリした。これで本題に戻れます。:grin:
![画像を設定済み.png](https://qiita-image-store.s3.amazonaws.com/0/237418/01604ca1-5f6d-6893-804d-0153f159b9b2.png)
</div></details>

##**よーし、git cloneしてみます。**##
私事なのですが、現在androidのアプリを作成していて、その際にお世話になっているjsoupさん
今回はこちらのリポジトリをclone(コピー)しようと思います。
![jsoup.png](https://qiita-image-store.s3.amazonaws.com/0/237418/dcf2aa98-ed69-0fa2-0796-019e228d2993.png)

まずは、cloneするディレクトリを作成します。コマンドを入力
(今回はデスクトップにjsoupというディレクトリを作成しました)

```Bash
mkdir jsoup
```
次にjsoupディレクトリに移動

```Bash
cd jsoup
```
さて、ではブラウザに一旦戻ります。
該当のページの右側にある緑色のボタンClone or downloadをクリック
![jsoup2.png](https://qiita-image-store.s3.amazonaws.com/0/237418/259144da-f91b-daa3-c657-a2fff93664ba.png)

するとClone with HTTPSのウィンドウが開きました。
Use SSHをクリックしてみます。すると今度はHTTPSがSSHに変わりました。
HTTPSだと表示されているURLが **https** で始まり、SSHだと **git@** で始まっています。
![GithubURL.png](https://qiita-image-store.s3.amazonaws.com/0/237418/039cf5fe-9985-c967-f626-e854c163eb19.png)
HTTPSっていう通信方式とSSHっていう通信方式があってHTTPSでやると速いらしいのですがcloneする度に
認証の画面が立ち上がって来るので、SSH方式でやった方がスムーズだということで今回はSSHでやります。
URLの右側にあるマークを押すとURLがクリップボードにコピーされます。便利なので押します。

さて、ではコマンドに戻ってお待ちかね **git clone** します。git clone のあとに
右クリックすると先ほどクリップボードに貼り付けたURLがペタッと貼り付けられます。そしてEnter

```Bash
git clone git@github.com:jhy/jsoup.git
```
Cloning into 'jsoup'...　えーっ？:cold_sweat:拒否された…。アクセス権ないの~???
![コマンド.png](https://qiita-image-store.s3.amazonaws.com/0/237418/7722b9d5-f6ad-8b71-125b-cfe034d21fc0.png)
>git@github.com: Permission denied (publickey).
>fatal: Could not read from remote repository.
>
>Please make sure you have the correct access rights
>and the repository exists.

これは、GitHubにSSHキーを登録していないから出ているエラーみたいです。

#**SSHキーを作成する**#
そっかじゃあSSHキーってどうやって作るのー？ということで、こちらを参考にさせて頂きました。
**[https://qiita.com/suthio/items/2760e4cff0e185fe2db9](https://qiita.com/suthio/items/2760e4cff0e185fe2db9)**
タイトルは辛辣ですけども、ワタシも理解できるほど とても分かりやすく書いて下さっています。

…ではやってみます。コマンドに　ssh-keygen -t rsa -b 4096 -C "コメント"　を入力しEnter
※コメントはGitに登録しているメアドを使用するのが一般的だそうです。してないメアドでも大丈夫

```Bash
ssh-keygen -t rsa -b 4096 -C "#######@#######.com"
```
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\tedkuma/.ssh/id_rsa):
キーを保存するファイルはデフォルトだと(　)内に作成されます。このままでよければEnterします。
![komanndo.png](https://qiita-image-store.s3.amazonaws.com/0/237418/dffa8d66-7121-2ddc-deb6-27154932178d.png)


Enter passphrase (empty for no passphrase):　→任意のパスフレーズを入力します。
Enter same passphrase again:　　　　　　　　 →再度同じパスフレーズを入力します。
![パスフレーズ入力.png](https://qiita-image-store.s3.amazonaws.com/0/237418/2e37e20b-ee7f-f3c4-a397-7cd0fa475b7b.png)

2回同じパスフレーズを入力すると、こんな画面が出ます。公開鍵と秘密鍵が出来ました。
![keyが出来たよ.png](https://qiita-image-store.s3.amazonaws.com/0/237418/d62ee23e-7248-7983-58e8-e644261cb0b5.png)

.sshの中を確認してみます。**id_rsa** と **id_rsa.pub** が作成されています。
id_rsa が秘密鍵、id_rsa.pub はpublicのpub　だから公開鍵ってことです。こっちをGitHubさんに教えます。
![.ssh.png](https://qiita-image-store.s3.amazonaws.com/0/237418/051c9415-47a7-61e8-3522-540eab946a74.png)


#**GitHubアカウントにSSHキーを登録する**#
ブラウザに戻って右上のアイコン隣の▼をクリックして、Settingsを選択
![githubOP.png](https://qiita-image-store.s3.amazonaws.com/0/237418/f2f24bf4-8dee-3903-39a9-f4baa8534b3d.png)

左側にあるSSH and GPG keys をクリック
![SSH登録.png](https://qiita-image-store.s3.amazonaws.com/0/237418/c5d9a277-a2b5-d3bb-c99e-45fdcc4ef897.png)

SSH keysの右側にある緑色のボタン　New SSH key を押します。
![設定の画面.png](https://qiita-image-store.s3.amazonaws.com/0/237418/688a744f-9c83-cb0d-a6d2-c225e3640934.png)

そうするとこの画面になります。下段にあるKeyのところに公開鍵の情報を入力する必要があります。
![SSH key入力.png](https://qiita-image-store.s3.amazonaws.com/0/237418/49507b27-1a7f-72ad-2585-e173a5c9893c.png)

ではコマンドで公開鍵の情報をクリップボードにコピーします。
windowsの場合は clip < コピーするファイル名 です。

```Bash
clip < C:\Users\tedkuma/.ssh/id_rsa.pub
```
![クリップボードにコピー.png](https://qiita-image-store.s3.amazonaws.com/0/237418/b0881e81-86f3-1bc9-f367-470231dde302.png)

さて、ブラウザに戻って先ほどのKeyに貼り付けます。titleには任意のタイトルを入力して
Add SSH keyボタンをクリック
![はっ付けた.png](https://qiita-image-store.s3.amazonaws.com/0/237418/80c8173b-561b-7906-fcc6-303958718e28.png)

GitHubのパスワードを入力します。
![githubのパスワード入れる.png](https://qiita-image-store.s3.amazonaws.com/0/237418/718d2cb3-15da-a19d-9ec4-bb52ed0b3884.png)

SSHキーが登録されました。
![keyが登録されましたよ.png](https://qiita-image-store.s3.amazonaws.com/0/237418/be480981-120a-4bd9-3ce2-7f07ff038574.png)

##**今度こそー！　再度 git cloneしてみます**##

もう一度、cloneのコマンドを入力

```Bash
git clone git@github.com:jhy/jsoup.git
```

そうすると接続を続行していいですか？と聞かれます。
![今度こそー！.png](https://qiita-image-store.s3.amazonaws.com/0/237418/0b23e67f-da7f-cf3a-78f1-3b0bb93264e1.png)
>The authenticity of host 'github.com (192.30.255.122)' can't be established.
>RSA key fingerprint is SHA : ###############################
>Are you sure you want to continue connecting (yes/no)?

**[ここ](https://help.github.com/articles/github-s-ssh-key-fingerprints/)**に書かれているfingerprintのRSA keyとコマンドに表示されているRSA keyが一緒なのを確認してyesを入力
![確認する.png](https://qiita-image-store.s3.amazonaws.com/0/237418/7fb9d7f7-0dbb-b0ef-9fa9-1c1ff5ec8aa5.png)

known hostsにgithub.comが追加されました。続いてキーのパスフレーズを入力
![こんどはこれ.png](https://qiita-image-store.s3.amazonaws.com/0/237418/3ac06625-573e-7598-445e-026b4acf8278.png)

今度は良さげです:ok_hand_tone2:
![出来たー.png](https://qiita-image-store.s3.amazonaws.com/0/237418/99d488d7-581c-5bfd-2fc0-af6bc5595556.png)

無事にclone出来ましたー!!!良かった良かった。jsoupの中にcloneしたjsoupが入ってます。
![clone出来ました★.png](https://qiita-image-store.s3.amazonaws.com/0/237418/c8dbe9dc-1fd4-90de-e7d9-6536a942fcb8.png)

例えが適切なのかはわかりませんが、ワタシの感覚だと
SSHは合鍵を信用できる人に預けておいて合鍵で入ってきてもらって、
HTTPSは宅配業者がインターホン鳴らしてcloneしたファイルを置いていくような感じかなーって思いました。
そしてGitHubの便利さに気づいたので、これからは怯まずgit cloneして活用させて頂こうと思います。

★゜・。ワタシみたいにgit cloneやってみようかなーで止まっちゃった人の助けになりますように・゜★