注冊GitHub賬號巷折,只要點擊導(dǎo)航條中的“Signup and Pricing”渔隶,或者點擊首頁中那個大大的“Plans, Pricing and Signup”按鈕看靠,即進入收費方案介紹及注冊頁面来庭。
收費调缨?不必擔心宣决,開源軟件托管是GitHub的基石蘸劈,對于開源項目的版本庫(即非私有版本庫)的托管,GitHub是免費的尊沸。在收費方案及注冊頁面中威沫,最上面的就是針對于開源的免費托管方案,如圖2-1所示洼专。
至于本頁其他付費方案棒掠,將在后面的章節(jié)介紹。點擊免費方案右側(cè)的“Create a free account”按鈕屁商,就進入到注冊頁面烟很,如圖2所示。
GitHub的注冊頁面非常簡潔蜡镶,只有登錄ID雾袱,郵件地址和口令需要輸入。要注意的是每個郵件地址只能注冊一次官还。
注冊完畢即以新注冊的賬號自動登錄芹橡。登錄后即進入用戶的儀表板(Dashborad)頁面。首次進入的儀表板頁面還會在其中顯示GitHub BootCamp(GitHub 新手訓(xùn)練營)的鏈接望伦,以幫助新用戶快速入門林说。如果圖2-3所示。
儀表板頁面是用戶最重要的頁面屯伞,因為創(chuàng)建新項目(新版本庫)的鏈接就位于該頁面腿箩。重新設(shè)計的GitHub用戶界面[[1]](http://www.worldhello.net/gotgithub/02-join-github/010-account-setup.html#idpycharm git ssh3)中跳轉(zhuǎn)到儀表板頁面的鏈接不像之前那么直觀,鼠標移動到頁面左上角的“github”文字圖標會發(fā)現(xiàn)此圖標可以點擊劣摇,該文字圖標即是進入儀表板頁面的快捷珠移。
在頁面右上方顯示當前登錄用戶的名稱和頭像。圖2-3中顯示登錄用戶為 gotgithub饵撑,而用戶頭像因為尚未設(shè)置所以顯示為缺省圖片——GitHub吉祥物Octocat的剪影。在頁面右上方還有三個圖標唆貌,從左至右分別是:通知滑潘、賬號設(shè)置和退出。點擊賬號設(shè)置圖標對賬號進行進一步設(shè)置锨咙,如圖2-4所示语卤。
賬號設(shè)置的第一個頁面pycharm git ssh是對用戶公開身份信息進行設(shè)置,所有內(nèi)容均為可選項,如果填寫將顯示在個人頁面中粹舵,并能被所有人訪問钮孵。注意修改用戶頭像需要訪問第三方頭像設(shè)置網(wǎng)站:gravatar.com,Gravatar網(wǎng)站提供的頭像服務(wù)是一個通用服務(wù)眼滤,可為大部分Web應(yīng)用所使用巴席。
圖2-4中還顯示了當前用戶使用的GitHub托管方案(Free)和使用統(tǒng)計。因為當前注冊用戶選擇的是免費方案诅需,所以可用的私有版本庫數(shù)量和私有空間的協(xié)同者數(shù)目都是零漾唉。免費方案擁有300MB托管空間,因當前尚未創(chuàng)建版本庫托管堰塌,所以空間占用為零赵刑。GitHub對開源軟件的300MB托管空間限制并非硬性限制,可以申請擴增托管空間场刑,如果不存在濫用情況的話般此。
點擊菜單中的“Account Admin”,可以更改口令牵现、查看API Token铐懊、修改用戶名,以及刪除自身賬號施籍,如圖2-5所示居扒。
其中API Token是和用戶口令相關(guān)的密鑰,當用戶口令更改時API Token也隨之更改丑慎。GitHub的某些應(yīng)用會使用API Token進行身份認證喜喂,從而避免直接使用用戶口令造成泄露的風險。API Token若泄露的危害要遠遠小于口令泄露竿裂,這因為API Token不能用于登錄GitHub網(wǎng)站等玉吁,而且一旦API Token泄露可以很容易通過更改口令的方式更換API Token。
點擊菜單中的“Email Addresses”腻异,可以添加和刪除郵件地址进副,如圖2-6所示。GitHub允許為一個賬號綁定多個郵件地址悔常,以便能夠?qū)it版本庫中的提交(提交者以 “用戶名 <郵件地址>” 的格式給出)正確對應(yīng)到GitHub賬戶影斑。
GitHub為托管的Git版本庫提供SSH協(xié)議支持,即用戶可以用公鑰認證的方式連接到GitHub的SSH服務(wù)器机打。下面的示例用ssh命令連接github.com的SSH服務(wù)矫户,登錄用戶名為git(所有GitHub用戶共享此SSH用戶名,不要寫成其他)残邀。
$ ssh -T git@github.com
Permission denied (publickey).
上面的示例顯示登錄失敗皆辽,這是因為我們尚未在GitHub賬戶中正確設(shè)置公鑰認證柑蛇。圖2-7顯示的是GitHub的SSH公鑰設(shè)置界面。
要想向GitHub添加SSH公鑰驱闷,首先要確保正確生成了對應(yīng)的公鑰/私鑰對耻台。關(guān)于SSH公鑰認證,在我的《Git權(quán)威指南》一書的“第29章使用SSH協(xié)議”中有詳細介紹空另,這里僅做簡要的介紹盆耽。
GitHub的SSH服務(wù)支持OpenSSH格式的公鑰認證,可以通過Linux痹换、Mac OS X征字、或Cygwin下的ssh-keygen命令創(chuàng)建公鑰/私鑰對。命令如下:
$ ssh-keygen
然后根據(jù)提示在用戶主目錄下的.ssh目錄中創(chuàng)建默認的公鑰/私鑰對文件娇豫,其中/.ssh/id_rsa是私鑰文件匙姜,/.ssh/id_rsa.pub是公鑰文件。
注意私鑰文件要嚴加保護冯痢,不能泄露給任何人氮昧。如果在執(zhí)行ssh-keygen
命令時選擇了使用口令保護私鑰,私鑰文件是經(jīng)過加密的浦楣。至于公鑰文件~/.ssh/id_rsa.pub則可以放心地公開給他人袖肥。
也可以用ssh-keygen命令以不同的名稱創(chuàng)建多個公鑰,當擁有多個GitHub賬號時振劳,非常重要椎组。這是因為雖然一個GitHub賬號允許使用多個不同的SSH公鑰,但反過來历恐,一個SSH公鑰只能對應(yīng)于一個GitHub賬號寸癌。下面的命令在~/.ssh目錄下創(chuàng)建名為gotgithub的私鑰和名為gotgithub.pub的公鑰文件。
$ ssh-keygen -C "gotgithub@gmail.com" -f ~/.ssh/gotgithub
當生成的公鑰/私鑰對不在缺省位置(~/.ssh/id_rsa等)時弱贼,使用ssh命令連接遠程主機時需要使用參數(shù)-i <filename>指定公鑰/私鑰對蒸苇。或者在配置文件/.ssh/config中針對相應(yīng)主機進行設(shè)定吮旅。例如對于上例創(chuàng)建了非缺省公鑰/私鑰對/.ssh/gotgithub溪烤,可以在~/.ssh/config配置文件中寫入如下配置。
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gotgithub
將SSH私鑰添加到ssh代理庇勃。
ssh-add ~/.ssh/gotgithub
好了檬嘀,有了上面的準備,就將~/.ssh/gotgithub.pub文件內(nèi)容拷貝到剪切板责嚷。公鑰是一行長長的字符串鸳兽,若用編輯器打開公鑰文件會折行顯示,注意拷貝時切莫在其中插入多余的換行符再层、空格等贸铜,否則在公鑰認證過程因為服務(wù)器端和客戶端公鑰不匹配而導(dǎo)致認證失敗。命令行下可直接用pbcopy命令[2]將文件內(nèi)容拷貝到剪切板以避免拷貝錯誤:
$ cat ~/.ssh/gotgithub.pub | pbcopy
然后將公鑰文件中的內(nèi)容粘貼到GitHub的SSH公鑰管理的對話框中聂受,如圖2-8所示蒿秦。
設(shè)置成功后,再用ssh命令訪問GitHub蛋济,會顯示一條認證成功信息并退出棍鳖。在認證成功的信息中還會顯示該公鑰對應(yīng)的用戶名。
$ ssh -T git@github.com
Hi gotgithub! You've successfully authenticated, but GitHub does not provide shell access.
如果您未能看到類似的成功信息碗旅,可以通過在ssh命令后面添加-v參數(shù)加以診斷渡处,會在冗長的會話中看到認證所使用的公鑰文件等信息。然后比對所使用的公鑰內(nèi)容是否和GitHub賬號中設(shè)置的相一致祟辟。
$ ssh -Tv git@github.com
...
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/jiangxin/.ssh/gotgithub
...
debug1: Entering interactive session.
Hi gotgithub! You've successfully authenticated, but GitHub does not provide shell access....
賬號設(shè)置的最后一項是向GitHub提供你的求職信息医瘫。GitHub作為一個優(yōu)秀程序員的聚集地,已成為一個IT人才招聘的途徑旧困,如果你需要找工作的話醇份,提供簡歷并打開“Available for hire”選項,GitHub會向你推薦合適的工作機會吼具。如圖2-9所示僚纷。
[1]
https://github.com/blog/1007-skinny-header
[2]
Mac下的命令行工具pbcopy和pbpaste可以在命令行下操作剪貼板,
Linux下的命令行工具xsel亦可實現(xiàn)類似功能拗盒。
在Linux下可以創(chuàng)建別名用xsel命令來模擬pbcopy和pbpaste 怖竭。
alias pbcopy='xsel --input'
alias pbpaste='xsel --output'