在你自動化部署腳本時,一共有四種方式來管理你的服務(wù)器的 SSH 密鑰:
這個指南會幫你確定哪一種策略是最適合你。
在許多情況下,特別是在一個項目的初始階段,SSH agent 轉(zhuǎn)發(fā)是最簡單、最快捷的辦法,該功能使用的密鑰和你本地開發(fā)電腦所使用的密鑰相同。
ssh -A serverA 'bash -s' < deploy.sh
如果你不想使用 SSH 密鑰,你可以使用帶 OAuth 令牌的 HTTPS。
請參照通過令牌的 Git 自動化指南。
部署密鑰是一個存放在你的服務(wù)器上并且可以授權(quán)訪問一個 GitHub 存儲庫的 SSH 密鑰。這個密鑰是直接附在存儲庫上的,而不是個人用戶賬戶。
1. 在你的服務(wù)器上執(zhí)行 ssh-keygen
程序。
2. 在任意 GitHub 頁面的右上角,點擊你的用戶相片。
http://wiki.jikexueyuan.com/project/github-developer-guides/images/top_right_avatar.png" alt="Sample of an avatar" />
3. 在你的用戶頁面內(nèi),點擊 Repositories (存儲庫)標(biāo)簽頁, 然后點擊你的存儲庫的名字。
http://wiki.jikexueyuan.com/project/github-developer-guides/images/profile_repositories_tab.png" alt="Repository tab" />
4. 在你的存儲庫的右邊欄中,點擊 Settings(設(shè)定)。
http://wiki.jikexueyuan.com/project/github-developer-guides/images/repo-actions-settings.png" alt="Settings tab" />
5. 在側(cè)邊欄中,點擊 Deploy Keys(部署密鑰)。
http://wiki.jikexueyuan.com/project/github-developer-guides/images/deploy-keys.png" alt="Deploy Keys section" />
6. 點擊 Add deploy key(添加部署密鑰)。 將你的公鑰粘貼進(jìn)去,并且提交。
http://wiki.jikexueyuan.com/project/github-developer-guides/images/repo-deploy-key.png" alt="Add Deploy Key button" />
如果你的服務(wù)器需要訪問多個存儲庫,你可以選擇創(chuàng)建一個新的 GitHub 賬戶然后附上一個僅用于自動化操作的 SSH 密鑰。因為這個 GitHub 賬戶不會被任何人類使用,所以被稱作機器用戶。接下來,你可以添加機器用戶為合作者,或者將機器用戶添加到隊伍里并給與自動化所需的存儲庫訪問權(quán)限。
注意:添加一個機器用戶作為合作者將會賦予其完整讀寫訪問權(quán)限。而添加一個機器用戶進(jìn)隊伍則會賦予它隊伍的權(quán)限。
提示:我們的服務(wù)條款特地提到“ ‘bot’(機器人)或者其他自動化手段所創(chuàng)建的用戶是不被允許的”,還有“一個自然人或者法人不得持有多于一個免費賬戶”。不過不要害怕,我們不會派出極端的律師來和你糾纏到底,只要你所創(chuàng)建的機器用戶只是用于服務(wù)器部署腳本。本文提到的機器用戶是完全合法的。
ssh-keygen
程序,然后為機器用戶賬戶附上公鑰。