產生 SSH key 給 Bitbucket/Github 使用

首先當然是弄個帳號:https://bitbucket.org

它讓我很感動的就是竟然有 OpenID 登入!

跟 Github 類似,他也可以直接用 SSH key 來認證,也可以用 HTTPS,不過我猜用 HTTPS 大概每次都要輸密碼吧,不像 ssh-add 一下就可以解鎖整個 session 。

原理簡單來說就是你有私鑰在本機,然後把公鑰放在你想要登入的機器上面(通常是放在那臺機器你的家目錄底下的.ssh/authorized_keys ),你想要登入的時候只要擁有私鑰就可以登入了(當然如果有 Passphrase 的話還是得輸入正確才能使用私鑰)。

而且還可以在本機下 ssh-add ,然後它就會問你你的私鑰 Passphrase ,只要輸入這一次,直到你登出本機之前你就可以一直使用私鑰而不需要每一次都輸入 Passphrase 了。

ssh-keygen, ssh, ssh-add 這些 utility 在 Linux 上絕對有,Mac 上應該也有。可憐的 Windows ,連這種小功能都沒有內建,還要用 putty ……

接下來就實際開始做啦

首先產生一組SSH公鑰/私鑰對:

$ ssh-keygen -t rsa -b 2048

當然想要金鑰長度更長我也不反對啦…… -b 參數調高一點就好了。

然後他會問你金鑰要放在哪裏,建議還是在檔名後面加個識別。

Enter file in which to save the key (/home/pellaeon/.ssh/id_rsa): /home/pellaeon/.ssh/id_rsa_bitbucket

設定 Passphrase ,就是通關密語,每一次用這個金鑰的時候就要輸入才能使用。最好還是設定一下,不要留空白

Enter passphrase (empty for no passphrase):

出現以下這些訊息就是成功產生了,id_rsa_bitbucket 是私鑰,要保管好,不要隨便複製/提供給別人,權限最好設成600。id_rsa_bitbucket.pub 是公鑰。

Your identification has been saved in /home/pellaeon/.ssh/id_rsa_bitbucket.
Your public key has been saved in /home/pellaeon/.ssh/id_rsa_bitbucket.pub.

產生完成了,接下來做一些小設定,讓 ssh 指令在連某一些地址的時候自動用特定的私鑰。打開 ~/.ssh/config ,我的設定是這樣的:

# Github
Host github.com
HostName github.com
User git
IdentityFile /home/pellaeon/.ssh/id_rsa_github
# Bitbucket
Host bitbucket.org
HostName bitbucket.org
User git
IdentityFile /home/pellaeon/.ssh/id_rsa_bitbucket

意思就是連到 github.com 的時候會自動用 ‘git’ 這個使用者還有 id_rsa_github 這個私鑰嘗試登入;
而連到 bitbucket.org 的時候會自動用 ‘git’ 這個使用者還有 id_rsa_bitbucket 這個私鑰嘗試登入;
連綫到這兩臺之外的機器的時候,就會嘗試用你目前在本機已經登入的使用者名稱,還有預設的私鑰 id_rsa 來嘗試登入。

Nice, huh?

2 thoughts on “產生 SSH key 給 Bitbucket/Github 使用

  1. 通告: 第一次使用wordpress架設在OpenShift | DIEN YANG

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s