2016-04-15 44 views
1

有沒有辦法設置git,以便多個用戶可以使用相同的部署密鑰存儲庫,但仍然有他們的提交標記在他們的用戶名下?我在問,因爲我們公司需要能夠準確跟蹤誰對存儲庫進行了更改,但最好讓他們都能夠使用相同的部署密鑰將這些更改發送到GitHub上的遠程設備。這可能嗎?如何爲多個開發者簽署git提交部署OpenPGP密鑰?

我的理解迄今爲止的是,它可能是可能的,因爲他們會使用1個部署密鑰驗證什麼樣的變化,他們推,但每個用戶都將有一個單獨的簽名密鑰,以找出發生的變化的特定用戶作出。它是否正確?

+0

我刪除了與SSH相關的標籤,因爲它們與您的問題完全無關。 –

回答

1

你可以爲每個開發人員創建單獨的簽名子項,並使用它們來追查誰簽署了承諾。爲此,請爲每個用戶運行gpg --edit-key [key-id]並運行addkey,只選擇「簽名」功能(您將遇到多個加密子項的問題)。導出這些子項逐一通過gpg --export-secret-subkeys(並記住後綴與!,否則的GnuPG將解決該子項主鍵),例如gpg --export-secret-subkey [subkey-id]!。開發人員將不得不gpg --import其個人簽名子項。由所有這些子密鑰發佈的所有簽名都將鏈接並顯示爲由主鍵發佈,但可以追蹤到所使用的子密鑰。

但要知道,你不能與OpenPGP標準和或GnuPG提供的工具鏈接OpenPGP的用戶ID和子項。如果您只需要能夠很少將簽名連接到給定的開發人員,您當然可以手動查找(通過保留哪個開發人員可以訪問哪個私有子項)。例如,如果您必須追查惡意代碼或類似事件。

OpenPGP做到這一點的方法是讓公司密鑰和個人開發人員(主)密鑰通過公司密鑰認證。但我認爲GitHub不能遵循認證路徑;如果GitHub上的「簽名檢查」標記很重要,那麼您還必須單獨註冊每個開發人員的密鑰。

+0

這實際上是完美的;我們倉庫的主要關注點主要是不可抵賴性;我們需要能夠知道什麼時候破解代碼,何時發生錯誤。要註冊每個密鑰是一個小小的讓步,我不認爲我們的開發人員會介意。 :) 謝謝! –