公司裡面沒有Linux base的Server,倒是新買了一台Window7的主機,又不想灌VM,因此就直接在Windows7上面架Git Server囉。
簡單的拜了一下Google大神,目前大家普遍使用的環境是msysgit + Copssh,其中msysgit是提供Windows環境下的Git Repository,由於是要架Server給其他Client來使用,因此需要搭配一個protocol來作傳輸,Copssh就是擔任這個角色。由於ssh會先將資料壓縮後加密,就傳輸上來說比較有效率。
msysgit以及Copssh目前在網路上都可以下載,只是Copssh現在已經不是免費的了(
另外由於團隊大部份人使用eclipse來開發,因此最後也要做到能夠直接從EGit(eclipse上的git plugin)來存取git Server
先簡單將重點outline在下面:
- msysgit提供Windows上的git repository
- Copssh提供Windows上的ssh連線
- Copssh的使用者必須從Windows上面的使用者來加入
- Copssh提供產生金鑰的功能,每個使用者都可以產生各自的私鑰
- 因為不明原因,eclipse裡面用的private key如果有加上passphrase會出現問題,所以我用Copssh在產生私鑰的時候,就不設定passphrase
接下來就一步一步來進行
如果要讓其他人可以透過ssh來存取Server端的git repo
- 在Server端Windows系統必須替每個使用者新增帳號
- 在Copssh中,將Windows帳號加入,並且為每個帳號產生一個private key
- 將private key交給該使用者
"Forward"
選擇要加入Copssh的使用者,下拉式選單讓你可以從目前Windows使用者來選取
設定這個使用者的一些屬性
完成
接下來要替剛加入的帳號產生一個private key
"Forward"
選擇加密的類型以及長度,按下"Forward"
如同之前所講的,這裡產生的private key是要給eclipse的EGit用的,如果設定Passphrase會出現不明的問題,因此在這裡將Empty passphrase勾選起來,不設定其值
完成
在Copssh該使用者的目錄下會看到剛產生的private key
接下來要在eclipse裡面利用ssh連結git repo
Window -> Preferences -> General -> Network Connections -> SSH2,在General tab裡面按下"Add Private Key"按鈕,選擇從Server拿到的private key
在eclipse裡面切換到GIT Perspective,在GIT Repositor的Tab裡面按下"Clone a Git Repo.."按鈕
輸入Server端的URI資訊
選擇要匯入的branch
選擇本端(client)的資料夾,按下"Finish"完成
在Git Repostories 可以看到剛才加入的Repostory
所有程序到此完成結束
由於我們ssh使用的是RSA加密演算法,所以這裡簡單介紹一下概念:
RSA有兩種用法
- 加密:公鑰用來加密,私鑰用來解密
- 簽章:私鑰加密,公鑰解密,也說是憑證
加密:
公鑰和私鑰是成對出現的。公鑰用來加密,私鑰用來解密。公鑰加密的訊息只有同對的私鑰可以解密。公鑰可以傳給其他人,私鑰只可以自己擁有。當其他人拿到用公鑰加密過的訊息,由於沒有私鑰,所以無法讀取訊息內容。
簽章:
公鑰和私鑰是成對出現的。公鑰用來解密,私鑰用來加密。如果公鑰解出來的訊息是正確的,帶表這訊息是由私鑰擁有者所傳送出來,藉此達成所謂簽章的效果。
reference :
Step by Step Setup Git Server on Windows with CopSSH + msysGit and Integrate Git with Visual Studio
Public-key cryptography
鳥哥
沒有留言:
張貼留言