windows 下搭建git服務器,及問題處理。


  最近要做一個源碼管理服務器,權衡了一下還是git最適合,搭建服務器前看了網上一些windows下搭建git服務器的帖子,感覺還比較簡單,沒有太多需要配置的地方,於是開始動手。

      我選擇的是 gitfor windows + Tortoisegit + Copssh

      gitfor windows下載地址 http://msysgit.github.io/  最新版的 Git-1.9.4-preview20140611

  putty 用來測試ssh連接 同時還需要工具 puttygen 用來轉換 copssh生成的私鑰,它們兩個格式不一樣,連接的時候不注意就會在這里出問題,我就栽到這個坑里。

      先安裝Copssh  再 gitfor windows ,Tortoisegit 安裝過程比較簡單,不想羅列太多的圖片,不清楚怎么安裝的去找度娘。

      安裝好之后,有幾點需要注意的:

     1. 配置Tortoisegit:TortoiseGit>Settings

        

      配置好git路徑

 

    

     2. 創建一個git賬戶管理員權限

     3. 在copssh里激活 git 用戶

    

    

    

    

    

     用戶激活成功,下面生成公鑰和私鑰

      

     

    

     

     

      輸入密碼,此密碼為ssh密鑰登陸密碼。私鑰名稱,私鑰默認放在 copssh 安裝目錄 \ICW\home\用戶名  下面   ,公鑰在 \ICW\home\用戶名\.ssh 下面 名稱為:authorized_keys

  

  ok,公鑰跟私鑰生成成功,下面打開puttygen 將私鑰轉換成 putty格式 

   

    點擊 Load 選擇剛才生成的 private_key.ppk 文件,輸入密碼

 

     點擊 Save private key 保存私鑰,注意不要覆蓋原來的私鑰,copssh 私鑰格式跟 putty私鑰格式不一樣,測試ssh連接時用 puttygen 生成的私鑰

   客戶端git連接ssh服務器的時候要用copssh生成的私鑰。 我在剛開始搭建服務器的時候客戶端用的putty生成是私鑰,putty測試連接沒有問題,用

   git 連接是老是報沒有權限,郁悶了一天后來才發現問題出在這里。

     

4. 找到copss安裝目錄C:\Program Files (x86)\ICW\etc

        下面的sshd_config,跟ssh_config 文件

        PasswordAuthentication 設置為 no

   port 設置為 22

        防火牆打開22端口  用 telnet 命令鏈接查看是否能夠連接,沒問題接着下面走

        根據自己的安裝目錄, 將C:\Program Files (x86)\Git\libexec\git-core目錄下的git.exe , git-receive-pack.exe , git-upload-archive.exe , git-upload-pack.exe復制到C:\Program Files (x86)\ICW\bin目錄下

          C:\Program Files (x86)\Git\bin 目錄下的libiconv-2.dll復制到 C:\Program Files (x86)\ICW\bin目錄下

   用putty 測試是否能夠連上服務器

   

 

       填上服務器名稱端口

 

      

 

      Author選項,導入私鑰點擊 open ,如果能夠連接說明ssh服務器搭建成功。

 

 

5. 客戶端Git配置

(最好的做法是在客戶端用  ssh-keygen -t rsa 生成公鑰跟私鑰  把公鑰加到 服務器 \ICW\home\用戶名\.ssh 下面 authorized_keys 里面

私鑰放到 客戶端 用戶名/.ssh 目錄下)

將生成的私鑰放到客戶端 用戶名/.ssh 目錄下

同目錄下添加 config文件,注意沒有擴展名

文件輸入如下內容
Host server            #執行git命令時服務器別名#
HostName 192.168.1.110   #這里是你服務器的地址#
User  git                            #登陸服務器用戶名#
IdentityFile ~/.ssh/private_key.ppk #私鑰地址#

6. 服務器端 在\ICW\home\用戶名 下用Tortoisegit 創建一個文件夾   test.git

右鍵 Git Create repository here..  勾選 Make it Bare ( No working directories) 創建空倉庫

7. 客戶端執行 $git clone git@server:test.git  輸入密碼

 ok,克隆成功至此git服務器搭建好了!

 

可能遇到的問題:

A.  私鑰不要搞混了用 putty 連接同 git 連接是用兩不同的私鑰,私鑰不對是話會報錯:

Permission denied (keyboard-interactive).

fatal:Could not read from remote repository.

如果出現這種情況不能確認是否是私鑰有問題時可以這樣處理:

到服務器端激活密碼驗證,

        找到copss安裝目錄C:\Program Files (x86)\ICW\etc

        下面的sshd_config,跟ssh_config 文件

        PasswordAuthentication 設置為 yes

這樣的話連接服務器需要輸入git用戶 的用戶密碼,通過用戶名登陸,不走密鑰驗證,如果能連接成功,說明一定是私鑰問題。

 

B. 缺少文件

    我在克隆時碰到過缺少libiconv-2.dll 的情況

   git 提示 /user/bin/git-upload-pack.exe: error while loading shared libraies: libiconv-w.dd: cannot open shared object file: No such file or directory

   只需將C:\Program Files (x86)\Git\bin 目錄下的libiconv-2.dll 復制到 C:\Program Files (x86)\ICW\bin目錄下就可以了

第一篇博文,沒太注意排版,目的是幫大家解決問題,如果看了我的文章真對大家有所幫助請贊一下咯!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM