環境構築　003　GitHub　SSH接続設定

#1. 概要

SourceTreeからGitHubに、SSH接続を行う。
SSH公開鍵（Public key）／秘密鍵（Private key）のペアは、SourceTreeインストールと同時にインストールされた、[Putty Key Generator] で作成
公開鍵（Public key）をGitHubサーバー側に、秘密鍵（Private key）をクライアント側に保管。
ネットワークは、プロキシ設定がない環境。

#2. 事前確認／準備

#2.1. SourceTree オプション設定確認

どのタブも、デフォルト設定から変更なし

#2.1.1. SourceTree オプション　全般タブ

SourceTreeのメニューバーから「**ツール**」‐「**オプション**」をクリック

![SourceTree-pre-001-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/69a9b0f9-5f24-57ed-cfa0-1d57f95cc015.png)

オプション画面の「**全般**」タブを確認

※SSH クライアントは、[Putty / Plink]のままで

![SourceTree-pre-002-1-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/9340edec-f541-5bcf-45fd-6de12e50d23c.png)
![SourceTree-pre-002-2-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/21512cc7-d6e2-3401-c63c-a02572aa3821.png)

#2.1.2. SourceTree オプション 認証タブ

オプション画面の「**認証**」タブを確認

![SourceTree-pre-003-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/8437f2a9-9886-1383-0262-470a2f10e25e.png)

#2.1.3. SourceTree オプション ネットワークタブ

オプション画面の「**ネットワーク**」タブを確認

※プロキシ設定がない環境なので、とくに変更なし

![SourceTree-pre-004-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/97ff794c-7a85-4885-2c98-f4eac49bc32a.png)

#2.2. GitHub アカウント SSH Key 保管場所

【アカウントPublic profile画面】 の [*Personal settings*] にある [*SSH and GPG keys*] に保管するので、場所を確認
  
#2.2.1. GitHub 【アカウントTOP画面】

【アカウントTOP画面】の左側にある「**Edit profile**」をクリック

![GitHub-ssh-001-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/36ea1ec3-df15-356d-f5c3-19bfa306a91f.png)

#2.2.2. GitHub 【アカウントPublic profile画面】

【アカウントPublic profile画面】の左側にある「**SSH and GPG keys**」のリンクをクリック

![GitHub-ssh-002-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/1368ac2d-aad2-6d6c-8a6a-532473383162.png)

#2.2.3. GitHub 【アカウントSSH and GPG Keys画面】

【アカウントSSH and GPG Keys画面】の右側にある「**New SSH key**」をクリック

![GitHub-ssh-003-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/65e2f712-1450-3331-fdb4-5979c660b9bc.png)

#2.2.4. GitHub 【アカウントSSH keys/Add new画面】

【アカウントSSH keys/Add new画面】の『*Titleテキスト*』に任意名称、『*Keyテキストエリア*』に、公開鍵（Public key）を貼り付け、「**Add SSH key**」をクリックして、公開鍵（Public key）を追加

※実際の手順は、 "3.2. GitHubへの公開鍵（Public key）登録" で

今回は鍵作成の暗号化方式には、ssh-rsa 方式を使用

![GitHub-ssh-004-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/244ef791-96ba-5249-e51b-b5287332025a.png)

GitHub側の確認は、一旦、ここまで。

#2.3. 秘密鍵（Private key）保管ディレクトリの作成 

秘密鍵（Private key）の保管場所となるディレクトリを、ログインユーザのディレクトリ直下に、「*.ssh-key*」ディレクトリをコマンドラインから作成

![SourceTree-pre-201-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/c99c5810-ff8a-d512-3c00-06381576c378.png)

#3. SSHキー作成／GitHubへの登録

#3.1. SourceTree SSHキー作成

#3.1.1. [Putty Key Generator]の起動

SourceTreeのメニューバーから「*ツール*」‐「*SSH キーの作成/インポート*」をクリック

![SourceTree-pre-101-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/0a570032-d858-6626-00e4-4aab970551d6.png)

#3.1.2. public/private key pair の作成

[Putty Key Generator]が起動したら、Parametersエリアの鍵方式は『*RSA*』を選択し、Actionsエリアの「**Genarate**」をクリック

![SourceTree-pre-102-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/5edb23e5-75d6-4392-add8-e68d595a60ae.png)

Keyエリアのメッセージのとおり、マウスを動かし、鍵作成を行う

![SourceTree-pre-103-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/4e0d34e1-5f2a-cc7b-38dc-4013a132d7c5.png)

鍵の生成が完了すると、『*Public key*』『*Key fingerprint*』『*Key comment*』がセットされた下記の画面を表示される

![SourceTree-pre-104-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/9a195652-2c2e-5f85-8aac-925a92409306.png)

#3.1.3. 秘密鍵（Private key）の保存

『*Key passphrase*』『*Confirm passphrase*』に任意の文字列を入力し、「**Save private key**」をクリック

![SourceTree-pre-105-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/f5bdd457-54a1-c638-f724-fc04b2b9bf7f.png)

下記、保存先ダイアログが立ち上がるので、"2.3. 秘密鍵（Private key）保管ディレクトリの作成" で作成したディレクトリパスを指定、任意のファイル名を入力し、「**保存**」をクリック 

![SourceTree-pre-106-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/8c880e31-2086-92f1-85b2-560938ac09b1.png)

保存されたことを確認

![SourceTree-pre-107-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/9c91dfc5-f1ec-5f6a-e608-f5af64fdef97.png)

#3.2. GitHubへの公開鍵（Public key）登録

#3.2.1. 公開鍵（Public key）のコピー

[Putty Key Generator]に Public key for pasting … と表示されているとおり、テキストエリアの文字列を全選択後、コピー

![SourceTree-ssh-001-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/06deaa41-8e13-a766-1843-e17dd929f481.png)

#3.2.2. GitHub 【アカウントSSH keys/Add new画面】へ貼り付け

『*Keyテキストエリア*』に、"3.2.1. 公開鍵（Public key）のコピー" でコピーした文字列を貼り付け、『*Titleテキスト*』に、任意文字列を入力、「**Add SSH key**」をクリック

![GitHub-ssh-005-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/227a0f70-c6dd-a3b2-8d1a-e3acda2ba2a8.png)

公開鍵（Public key）が保存されたことを確認

![GitHub-ssh-006-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/b8548744-f79f-a5de-2eec-464b9ed2a671.png)

#4. SourceTree から GitHub への接続 ／ Clone 実施

#4.1. [Pageant（Putty authentication agent）]に、Private key file を追加

SourceTree 起動と同時に、[Pageant（Putty authentication agent）]が起動しているので、デスクトップ右下の**通知バー**を右クリック、**[Pageant]アイコン**を右クリック、「**View keys**」 をクリック

![Putty-agt-001-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/55bc2715-5aad-60ea-860e-40357a974482.png)

![Putty-agt-002-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/b130138b-6136-4384-1ff3-b2781dca4fd5.png)

[Pageant Key List ダイアログ画面] が表示されたら、「**Add Key**」をクリック

![Putty-agt-003-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/e0cf8186-0c32-0f3c-0e38-9259644f42bd.png)

"3.1.3. 秘密鍵（Private key）の保存"　の Private key File を選択、「**開く**」をクリック

![Putty-agt-004-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/bb166da8-c4f0-62df-5cbd-2375650d5550.png)

『*passphrase*』の入力を求められるので、"3.1.3. 秘密鍵（Private key）の保存" で指定したpassphraseを入力し、「**OK**」をクリック

![Putty-agt-006-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/8b7fcc8e-a5b3-ed12-29a1-af2f63276502.png)

[Pageant Key List ダイアログ画面] に、Private key Fileが追加されたのを確認し、「**close**」をクリック

![Putty-agt-007-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/fd509570-f044-2bf9-f574-f5290478025c.png)

#4.2. GitHub SSH接続でクローン実施 

【アカウントTOP画面】の「*Repositories*」リンクをクリック、clone対象リポジトリのリンクをクリック

※今回は、curly-octo-enigma が対象リポジトリ

![GitHub-repo-000-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/eadb3e9c-dbc2-923d-94e7-f3249ddd6871.png)

【curly-octo-enigmaリポジトリ TOP画面】の真中右にある「**Clone or download**」をクリック

![GitHub-repo-001-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/c787defb-85b4-869e-73a4-229fad0c71d8.png)

GitHubに、SSH接続をしたいので、「**Use HTTPS**」 リンクをクリック

![GitHub-repo-002-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/ffa2949a-463b-abdb-b5a0-61de322f8b13.png)

Clone with SSH に切り替わったら、「**コピーアイコン**」をクリックし、SSH接続時のURLをクリップボードにコピー

![GitHub-repo-004-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/eb4e668c-e725-ac55-2fb6-0be415431d20.png)

![GitHub-repo-005-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/66a76ce3-f409-cc2d-d686-a6ac8d317465.png)

#4.3. SourceTree から Clone 実行

SourceTree の New tab の「**Clone**」をクリック

上から一番目に、”4.2. GitHub SSH接続でクローン実施 ”でクリップボードコピーした、SSH接続時のURL
上から二番目に、Clone対象リポジトリのクライアント保存先
上から三番目に、Clone対象リポジトリのクライアント名称（タブ名称となる）

「**クローン**」をクリック

![SourceTree-repo-003-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/6f4b258d-40ac-ef37-9ce3-be7b8e5e2d44.png)

SourceTreeからGitHubサーバーに接続

![SourceTree-repo-004-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/c3cee666-dff4-9196-811f-3337ac3d38a6.png)

GitHubサーバー接続が成功し、Clone処理も成功すると、下記画面が表示される

![SourceTree-repo-005-ok.PNG](https://qiita-image-store.s3.amazonaws.com/0/244997/e7212d26-0ad5-f0b3-9b20-88b4b424b0bb.png)