我知道這是5歲以上,但沒有公認的答案這個受歡迎的問題,所以這裏是我認爲考慮清潔度和未來可讀性的最佳方式:
ADD A部署用戶給你的團隊
第1步:創建您的組織的域新新的電子郵件地址部署用戶。類似於[email protected]。
第2步:使用該郵箱來創建一個新帳戶GitHub的(GitHub calls these "machine users")給它一個用戶名像部署,ExampleOrganisation所以它的作用是顯而易見的。
步驟3:在您的服務器名爲上的用戶「部署」用這樣的命令:
useradd -d /home/deploy -m deploy
產生部署@服務器 SSH密鑰,指定沒有密碼和/home/deploy/.ssh/id_rsa作爲文件位置:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
添加的小故事nts /home/deploy/.ssh/id_rsa.pub作爲您的新的SSH密鑰部署 - 示例組織 GitHub帳戶:轉至設置> SSH和GPG密鑰>新SSH密鑰。
第4步:創建組織中的一隊叫像「只讀部署用戶」,您的新用戶添加到團隊和給球隊讀訪問將被部署在任何回購協議。 (如果你沒有一個組織帳戶,您仍然可以授予該用戶對多個專用回購接入)
第5步:添加您自己的個人計算機的SSH密鑰部署用戶的授權密鑰文件(/家/deploy/.ssh/authorized_keys),以便部署代碼時您(或您的部署腳本)可以登錄爲部署。
熱潮!就是這樣...你現在有一個乾淨的自我記錄流程。
P.S.我嘗試了一下aculich的高票,但是它覺得骯髒與假主機名亂搞,我想,如果我在幾年後回來,我會很容易找出我做了什麼來創建所有的關鍵,並瞭解如何該SSH配置文件使這些有趣的不存在的遠程地址工作?可能不會!一個部署用戶的
優勢,較假主機名的方法:
- 沒有黑客!它是具有明確名稱的標準用戶帳戶,通過真實的主機名訪問回購站。
- 少了幾個鍵。
- 如果/當您確實遷移到其他服務器時,很容易爲您的Deploy用戶提供所有帳戶的帳戶,只需向其GitHub帳戶添加一個新密鑰,她在新服務器上的帳戶就可以部署代碼。
- 部署用戶只具有低權限僅對組中列出的Repos進行只讀訪問,並且您的個人SSH密鑰將保留在服務器外部,因此如果某位討厭的人無法訪問服務器,他們無法對其進行破壞所有的回購也是如此。
- 部署工具配置文件(例如Capistrano)不會弄髒包含那些令人困惑的虛擬主機名稱。 (這是當他們開始傳播到服務器之外,我真的變得不習慣這種方法)。
- 如果你忘記了你在多年的時間裏做了這些事情,文件的所有權將導致你部署用戶
ls -la
, SSH密鑰會引導您使用GitHub賬戶名ssh -T [email protected]
,希望您能夠再次加速。
- 最後...這是由GitHub推薦的方法。
很好的答案,非常有幫助。工作完美。謝謝 – 2012-12-18 20:31:37
我不明白什麼是假的?您生成另一個密鑰。每一秒都被稱爲「假」嗎? – 2016-07-12 20:45:46
@LittleAlien'foo.github.com'中的'foo'主機名是假的(也就是不存在的)部分。你可以爲主機名填補任何你想要的東西。我已經用'fake-hostname-foo.github.com'來澄清這個條目,而不是'foo.github.com'。 – aculich 2016-07-14 01:02:11