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

來源:互聯網
上載者:User

標籤:style   blog   http   color   os   io   strong   檔案   

  最近要做一個源碼管理伺服器,權衡了一下還是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 [email protected]: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目錄下就可以了

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.