在window系統下搭建基於ssh的git服務器


以下是基於window server 2012搭建的,學習搭建過程需要很多問題,找了許多文章做了一下總結。

 

1、所需的軟件

  • Git for Windows: MsysGit(Git-1.7.4-preview20110204.exe)
  • OpenSSH for Windows: CopSSH(Copssh_4.0.4_Installer.exe)

2、安裝git

  一般都是默認安裝就行

3、安裝copssh

  也是默認安裝

  安裝完成后主要有:Copssh Control Panel、Start a Unix BASH Shell

4、新建用戶

  》控制面板》用戶帳戶》用戶帳戶》管理帳戶》新建用戶(如git)

   取消用戶下次登錄時須更改密碼,設置密碼永不過期。

5、打開 Copssh Control Panel

  5.1 綠色表示成功啟動,如果是紅色,請重新安裝。

  *如果之前安裝過又卸載,可以嘗試如下:

    刪除系統用戶SvcCOPSSH(windows用戶):
      (1)開始-計算機,右鍵,點擊管理,進入計算機管理界面
      (2)展開[本地用戶和組],展開用戶列表,選中系統用戶SvcCOPSSH,右鍵刪除即可

  

   

 

 

  5.2 啟動成功,之后接着如下:

    》選擇Users,點擊Add

      

 

    》 點擊Forward,選擇用戶,然后點擊Forward,

      

    》 默認就行,然后點擊Apply完成

      

    》然后回到User那個界面,點擊Keys

      

   

   》 查看對於的用戶是否生成密鑰,有則跳過,沒有則生成

    

   》生成密鑰,點擊上面的Add,然后一直Forward,見到如下頁面

    

  》 然后點擊Forward,Apply即可完成

 

6、驗證ssh用戶

  6.1 打開 Start a Unix BASH Shell

    》 輸入 cd /home/用戶名/.ssh,如下即可

    

 

  6.2 測試遠程ssh連接(需要開啟22端口)

    》 在另外一台計算機(或者本機)打開一個cmd,然后輸入(git為用戶名):ssh git@192.168.2.2

    》然后提示輸入密碼,即表示成功連接

    * 如果出現如下錯錯誤:

      SSH登陸錯誤"WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! "

       

      

    原因:ssh安裝卸載多次,一般是因為在本計算機連接過遠程的計算機,本地保存之前的連接信息,現在只需要刪除之前的連接信息即可:

    解決方法:(在cmd,或者git bash輸入)

      》 rm  ~/.ssh/known_hosts

 

 7、接下來需要使用git的命令(上面連接成功,僅僅可以使用Linux命令,git命令還是無法使用)

  測試方法:連接成功之后,輸入:git。可以看到git命令相關信息,表示可以使用git。

  一般這里有兩種選擇,第一步(7.1)不行,請繼續第二步(7.2)。

  7.1  把git的一些必要文件復制到ssh的安裝目錄下

    》把將$ Git\libexec\git-core目錄下的git.exe , git-receive-pack.exe , git-upload-archive.exe , git-upload-pack.exe復制到$ICW\bin目錄下

    》將$Git\bin目錄下的libiconv-2.dll復制到$ICW\bin目錄下

    》將$Git下的share目錄整個拷貝到$ICW下。

    其中,$Git是指msysgit的安裝目錄  ,同理$ICW指COPSSH的安裝目錄。

  7.2 如果經過7.1還是不成功,則如下:

    》 修改 $ ICW/home/git/.bashrc 文件,增加如下行(注意:紅色部分為git安裝目錄):

      gitpath='/cygdrive/c/Program Files/Git/mingw64/bin'

      gitcorepath='cygdrive/c/Program Files/Git/mingw64/libexec/git-core'
      PATH=${gitpath}:${gitcorepath}:${PATH}

 

    》修改 $ ICW/etc/profile,在文件末尾增加如下行(注意:紅色為git安裝目錄)

      gitpath='/c/Program Files/Git/mingw64/bin'

      gitcorepath='cygdrive/c/Program Files/Git/mingw64/libexec/git-core'
      export PATH="/bin:$syspath:$gitpath:$gitcorepath:$winpath"

8、測試git服務器

  8.1 連接ssh服務器

    》打開“Git Bash”,使用命令

    》ssh ccf@192.168.1.100

    連接到ssh服務器。這個命令上面有說明。

    然后依次使用下列命令

  8.2 在服務器新建git倉庫

    》mkdir test.git

    》cd test.git

    》git init --bare

    新建一個名為test.git的文件,並在其中建立一個純git倉庫。

    》然后使用命令exit退出ssh服務器

  8.3 在本地計算機,克隆遠程倉庫,提交測試

    》cd d:

    》mkdir test

    》cd test

    》git clone git@192.168.1.1:test.git . 

    在d盤下新建一個test文件夾並從服務器clone一個git倉庫。

    接着依次輸入下列命令

    》touch a b c

    》git status

    》git add .

    》git commit -m "測試"

    》git push origin master

 

9、 修改用戶登錄后的目錄

  9.1 修改 $ ICW/home/用戶名/.bashrc ,在末尾增加如下:

    》 cd C:/MyPorgramPath

  9.2 修改 $ ICW /etc/password文件,修改對於用戶的路徑(紅色部分為需要修改的路徑)

    git:XXXXXX:/cygdrive/c/Project:/bin/bash

 

 

1


免責聲明!

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



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