序言
項目託管服務較好的當屬 GitHub 和 Bitbucket 了, 二者都支持 Git 版本控制。二者最大的區別是:
-
- GitHub 很火正常訪問,Bitbucket 最近訪問有點問題(...)
-
- GitHub 私有庫需要付費,Bitbucket 私有庫免費
-
- GitHub 只支持 Git,Bitbucket 同時支持 Mercurial
廢話不多說,開始配置
Step 1: 檢查SSH密鑰
> cd ~/.ssh
如果返回 "No such file or directory" 轉 Step 2. 否則說明你已經有一個密匙對,轉到 Step 3.
Step 2: 生成新的SSH密鑰
> ssh-keygen -t rsa -C "[email protected]"
使用你的郵件創建一個新的 SSH 密匙標籤,將會生成 ~/.ssh/id_rsa
文件, 用於存儲你的密匙。
現在,你需要輸入一個密碼:
Enter passphrase (empty for no passphrase): [輸入一個密碼]
Enter same passphrase again: [重新輸入密碼]
一般沒有特殊需要,直接回車即可。
你將看到一下信息:
Your identification has been saved in /home/you_username/.ssh/id_rsa.
Your public key has been saved in /home/you_username/.ssh/id_rsa.pub.
The key fingerprint is:
01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com
Step 3-1: 複製 SSH 密匙
安裝複製工具:
> sudo zypper install xclip
根據自己的系統選擇 zypper
/yum
/apt-get
。
複製 SSH 密匙到剪切板:
> xclip -sel clip < ~/.ssh/id_rsa.pub
當然你也可以不安裝 xclip
,使用 cat
命令,輸入到終端再複製。
Step 3-2: 添加 SSH 密匙到 GitHub
1. 點擊右上角 "Account Settings" 設置圖標
2. 點擊左側 "SSH Keys"
3. 點擊 "Add SSH key"
4. 粘貼你的密匙到 "Key" 文本區
5. 點擊 "Add key"
6. 確認操作輸入你的 GitHub 密碼
Step 3-3: 添加 SSH 密匙到 Bitbucket
1. 點擊右上角"用戶頭像"
2. 點擊下拉菜單中的 "Manage account"
3. 點擊左側 "SSH keys"
4. 點擊 "Add key"
5. 粘貼你的密匙到 "Key" 文本區
6. 點擊 "Add key"
Bitbucket 的 Account settings 中可以設置爲中文的。
Step 4: 測試連接
GitHub:
> ssh -T git@github.com
Bitbucket:
> ssh -T git@bitbucket.org
你可能會看到這樣的提示:
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
輸入 yes
即可
GitHub 成功提示:
Hi you_username! You've successfully authenticated, but GitHub does not
provide shell access.
Bitbucket 成功提示:
conq: logged in as you_username.
You can use git or hg to connect to Bitbucket. Shell access is disabled.
如果出現 access denied
一般是添加的 key
的問題,請檢查本地
key 和線上 key 是否相同, 或參考 Error:
Permission denied (publickey)。
到此你就可以使用 git clone 你的項目,提交更改了。
注:Bitbucket 使用 ssh 方式克隆, 如:git clone [email protected]:you_username/project.git
參考
本文大部分內容翻譯自下面的連接
GitHub Help: https://help.github.com/articles/generating-ssh-keys