2014-01-27 96 views
0

我使用SSH身份驗證配置Git服務器。對於某些用戶使用git-shell。git ssh身份驗證問題(登錄ID與用戶名)

我將介紹這個問題用一個例子:

  1. 有人給我他的混帳回購協議的訪問。我使用用戶名jorooo獲得了git的SSH帳戶。
  2. 我應該作出承諾,並推出名稱"Jorooo xxx" <[email protected]>
  3. 我開始使用git,但在一段時間內,我決定變壞!我改變我的git「用戶」和「電子郵件」(git config --global user.name "Alexander Tomov"
  4. 我設置了我的老闆姓名和他的電子郵件。
  5. 我所有的新提交似乎都來自我的老闆名字 - git log命令顯示了這一點。

對於我設置的服務器,我想消除這一點。我可否?

P.S.對於基於HTTP的SVN,HTTP用戶名被用作ID,所以這種問題是不可能的。

回答

1

可以編寫一個接收掛鉤來檢查上傳的提交(並在不滿意的情況下拒絕推送),但這在分佈式工作流程中不一定是個好主意。畢竟,有時您合法地想要推送其他人發送給您的提交,例如作爲通過郵件的補丁。

這裏的Git區分兩個概念,使這個更容易一點:在作者和提交的提交者。假設你編寫了一個鉤子來檢查所有上傳的提交者 - 即使分佈式工作流程也不太可能造成麻煩,但是如果你從一個遠程倉庫獲取並將檢索的提交推送到另一個倉庫,你仍然會遇到麻煩。如果這不會發生在您的環境中,您可以可能使這種鉤工作。

通常情況下,只能將您的存儲庫推送到您信任的人。假名比較溫和,例如,故意引入微妙的錯誤,可以將其作爲誠實的錯誤加以註銷,但會造成很大的損害。