簡體   English   中英

Windows上的Git-如何在Linux上通過遠程倉庫進行身份驗證

[英]Git on Windows - How to authenticate with remote repo on Linux

由於Windows上通過HTTP的Git存儲庫存在一些嚴重問題,因此我們將Git“服務器”移至Linux。

假設我已經安裝了Windows的msysgit和Putty,那么在克隆,拉入和推入時如何驗證SSH連接?

如果是SSH:

  • 在服務器上,您需要允許使用公鑰和私鑰進行身份驗證,您可以在Google上進行操作,例如http://shapeshed.com/setting_up_git_for_multiple_developers/
  • 在客戶端上,只需將私鑰放入Windows主頁中的.ssh文件夾,例如C:\\Users\\Name\\.ssh ,就像在unix上一樣。

您仍然可以使用HTTP,它將(1)始終詢問用戶名和密碼,或者(2)您還可以將用戶名和密碼放入URL: https://username:password@git.mydomain.com/...

該頁面涵蓋了有關使用PuTTy進行Git公鑰身份驗證的所有內容。 簡而言之:

  • 用Puttygen生成密鑰對
  • 將公鑰放入服務器
  • 在本地計算機上,將GIT_SSH環境變量設置為指向plink.exe。
  • 運行膩子選美並在其中加載您的私鑰

我建議完成本教程

需要注意的是,它談論的是github,因此告訴服務器有關SSH密鑰的故事是不同的。

您還打算如何管理開發人員,這也有所不同。 “問題”是SSH與真正的遠程(服務器端,我是指)用戶一起運行,這些用戶必須具有常規的Unix系統帳戶。

如果您只有少數開發人員,這沒關系。 然后,您只需要將它們全部添加到一個特殊的組(例如devel )中,並確保使用git init --bare --shared=group初始化服務器端的裸git init --bare --shared=group ,並使它們可組寫入並屬於該組group devel (這可以通過在設置“ group sticky位”並且屬於該group devel的目錄下創建所有存儲庫來解決)。

要將開發人員密鑰的公共部分分發到服務器,您必須從字面上復制該關鍵部分並將其粘貼(從開發人員的id_rsa.pub文件中為ASCII)到文件/home/developer/.ssh/authorized_keys文件。 如果該文件不存在,請創建它。 如果密鑰是在安裝了OpenSSH客戶端的計算機上生成的,則可以使用ssh-copy-id程序在一個步驟中傳輸密鑰。

這可能會變得混亂,因此您可能考慮實現虛擬化Git用戶的解決方案(就像github一樣)。 有很多選擇:

  • gitolite -據說是最受歡迎的解決方案。 使用專門的管理員Git存儲庫(擁有開發人員的公共密鑰)和一個描述存儲庫及其權限的配置文件,可以輕松管理。 Plain Perl,可以作為軟件包安裝在大多數明智的發行版上。
  • gitlab —交鑰匙的多合一解決方案。 用Ruby編寫,因此您可能會面臨維護方面的噩夢。
  • gitblit —用純Java編寫的另一種多合一解決方案(請注意,它不調用vanilla Git,而是使用純Java Git層-JGit)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM