使用 BitBucket commit 時 利用 SSH keys

## 使用 BitBucket commit 時 利用 SSH keys
 — — — — 
 在利用 BitBucket 製作專案的時候,分別有兩種上傳協定模式 
 最一開始的上傳 如果是使用
 * HTTP 
 ex: git remote add origin `https`://git@bitbucket.org/EasonKai/test.git 
 則每次上傳的時候,系統都會需要詢問password才能做上傳

* SSH 
 ex: git remote add origin `ssh`://git@bitbucket.org/EasonKai/test.git 
 使用 SSH key 做傳輸的動作的時候,系統就不會每次要求輸入password 
 所以,今天就是要來說明 如何帳號綁定 SSH key

> 本人就是曾經搞不定 SSH 而一直吃 
 `permission denied (publickey). fatal could not read from remote repository` 
 的苦主,所以今天就來做個講解。

— -
 * 生成 RSA PublicKey / PrivateKey

可參考Stack overflow [點我](https://stackoverflow.com/questions/36812519/setting-up-ssh-keys-for-bitbucket-on-windows
 > 使用 gitbash 生成 rsa keypair 的方式 
 > 什麼!!不知道 gitBash 趕快關閉網頁 回家媽媽十塊。

這邊複製裡面的重點方式
 ```
1. Open git bash terminal and enter the command ssh-keygen -t rsa -C “your email address”
2. Enter passphrase (leave it blank) and enter
3. Enter the same phrase again (leave it blank) and enter
4. Copy the id_rsa.pub file content from where it is residing in your system (C:\Users\username\.ssh)
5. Login to bitbucket account and click top right most user icon ->bitbucket settings->ssh keys under security menu then paste into key field and save it. 
6. Restart your git bash terminal and enter git init command and add ssh git repository location git@bitbucket.org:username/repository_name.git which is present in your bitbucket repository.
 ``` 
 主要靠第一點就可以 生成 rsaKeys了,後續就是設定檔案名稱。 
 比較讓我詬病的是,這邊沒有明確講 key生好要放哪裡,還有怎麼命名(也許有,但是沒看懂…) 
 所以後面來繼續講解,如何測試自己的 SSH 使否有啟用,以及如何放置 RSA Keys

— -
 * 將 key 放置 BitBucket 網頁上的設定 & 測試 SSH key 執行

可參考文章 [Adding Your SSH Key to Your BitBucket Account](https://modulesunraveled.com/very-basics-git/creating-account-bitbucket-and-setting-ssh-keys
 > 這篇是寫的不錯,但是比較拷貝的是,它就是針對正流程,順順講下來。 
 如果有錯誤的話,抱歉,另外自己想辦法。

這邊複製裡面的重點方式
 ```
1. In the top right corner of the BitBucket page, click the “user” icon and select “Manage account”
2. Select “SSH keys” from the sidebar.
3. Click “Add key”
4. Label: Brian’s MacBook Air (The label is used to differentiate your computers because you can upload SSH keys from multiple computers. ie: Work Computer, Personal Laptop, Live Server etc.)
5. Key: (Paste your key here.)
6. Click “Add key”
 ``` 
 * public key 放置網頁 圖解 
 some.jpeg

將public key (有ssh-rsa開頭的)的那份檔案 儲存至網頁上後, 
 接下來 就要將public key/ private key 放置本地端電腦的 , 
 `C:\Users\{username}\.ssh` 底下。

> 一開始我是將 publickey 檔名設為: `id_rsa.pub` 
 privateKey fileName: `id_rsa.pri`

* 測試執行 SSH 是否有執行成功。 (on gitbash) cmd不確定行不行。
 ```
 $ ssh -T git@bitbucket.org
 ```

- 成功結果 
success.jpg

- 失敗結果 
fail.jpg

如果成功的話,直接執行 git clone , git push 應該就可以正常執行。 
成功結果上傳.jpg

如果有錯誤的情況,可以下 command 指令 觀察 debug log 
```
bash: -v: command not found
``` 
- debugLog.jpg

這邊的例子是,找不到 PrivateKey 的檔案 (檔名不對) 
後來把檔名做修改後,就可以找到檔案了。

可參考文章[Troubleshoot SSH Issues](https://confluence.atlassian.com/bitbucket/troubleshoot-ssh-issues-271943403.html#TroubleshootSSHIssues-ssh-Tconnectiontest(GitBash/MacOSX/Linux))

> 後記:出錯的可能會有很多種, 
藉由查看 errorLog,就容易找出SSH的異常原因。

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.