我想通過ssh設置一個共享的git倉庫,將用戶的公鑰複製到authorized_keys。我真的很喜歡ssh-key中的「username」作爲repo中提交歷史記錄的一部分(這樣用戶「joe」不能只將他的名字設置爲「kate」) - 我們需要某種責任) 。有沒有辦法做到這一點?我可以將ssh用戶名與git通過ssh進行提交相關聯嗎?
5
A
回答
5
簡而言之,不,沒有辦法。原因在於作者和提交者的詳細信息是在進行提交時設置的,並且通常在本地發生。 A git push
稍後發生時會將現有提交推送到遠程存儲庫。因爲提交已經由SHA1哈希創建並引用,所以在推送操作期間不能更改它們。
你可能會考慮做一個預先接收或更新鉤子,以防止人們推送他們還沒有創作的提交,但這可能會阻止很多合法用途。您可能會發現相信您的用戶是唯一明智的選擇。
5
這不會與git的分散性質。想象一下joe合併凱特的開發部門。有他的地方克隆從喬和凱特提交現在:
* joe: Merge branch 'kate'
|\
| * joe: update foo
* | kate: fix test
* | kate: add test
|/
* joe: initial commit
如果喬推到中央存儲庫,現在,你在執行用戶名,凱特的提交將被歸於joe。
1
在Git-hub上,每個用戶都有自己的服務器端git存儲庫。也許你可以讓用戶只能推到那裏,你會有一個管理員拉入「官方」存儲庫? 這樣,就有了完整的可追溯性和問責制。你也將有一個主持人,最終的責任。
+0
這是一個很好的建議,但我們並不想要一個管理員,因爲所有提交者都被視爲同等信任。一個管理員只是開銷,我們避免像瘟疫一樣... – krosenvold 2009-08-13 06:09:38
相關問題
- 1. 通過SSH進行SSH(或如何通過SSH「通過SSH進行通信」)
- 2. 我可以通過ssh交互式運行程序嗎?
- 3. 當通過SSH進行克隆時,Git提交失敗
- 4. 缺少git通過http提交,但通過ssh提供
- 5. 無法通過SSH進行git獲取
- 6. 我們可以使用JSch進行SSH密鑰通信嗎?
- 7. 通過svn + ssh更改Subversion提交的用戶名
- 8. 與通過ssh
- 9. 是可以通過SSH
- 10. 無法使用Net :: OpenSSH進行SSH,可以通過命令行
- 11. 我可以通過ssh連接到datalab
- 12. 我可以使用ssh密鑰進行Azure git推送部署嗎?
- 13. 我可以在沒有svnserve的情況下通過SSH進行SVN嗎?
- 14. 我可以通過SSH使用Python編程Raspberry Pi嗎?
- 15. 我可以使用autossh進行gcloud compute ssh嗎?
- 16. 我可以使用ssh shell修改我的openshift git repo嗎?
- 17. 如何通過ssh代理與ssh代理並行執行ssh代理以在python中進行身份驗證?
- 18. 通過SSH在PHP中與多臺服務器進行交互
- 19. 無法與git克隆通過ssh
- 20. 通過HTTP訪問Kubernetes Git Container以及SSH和SSH
- 21. 使用Google Authenticator時通過SSH進行Git克隆
- 22. 是否可以通過SSH使用os.walk?
- 23. 無法通過SSH克隆/拉/推存儲庫與Git的Windows 2.14通過SSH
- 24. 如何通過PHP通過SSH與PostgreSQL進行通信?
- 25. 我可以通過ssh轉發env變量嗎?
- 26. 我可以通過ssh命令獲得某種返回值嗎?
- 27. 可以通過Visible = False將asp:Button提交給惡意用戶嗎?
- 28. 你可以通過SSH/SCP運行gitk嗎?
- 29. 我可以快速進行SSH認證嗎?
- 30. 我可以讓SSH客戶端運行DURING電腦啓動嗎?
因此,如果用戶更改其提交者/作者姓名和電子郵件地址並推送一些僞裝成同事的黑客代碼,那麼在裸回購級別沒有任何意圖阻止此操作? – pinkvoid 2015-12-03 15:10:35