① 如何連接git伺服器 gitolite
相比gitosis,gitolite的功能更為強大,支持對許可權的細分控制,學習一下在最新版 的ubuntu 14.04 LTS中搭建gitolite伺服器是非常有必要的,嘿嘿,一會屬於我們自己的GitHub就要出來了!
工具/原料
Ubuntu 14.04 LTS
gitolite
方法/步驟
首先這里我們安裝openssh-server openssh-client,如果你用的是VPS之類的一般都默認安裝好了,不過運行一個這個命令不會有錯的,如果有安裝就會提示已安裝。
sudo apt-get -y install openssh-server openssh-client
安裝git,在這個核心軟體,不可或缺。
sudo apt-get -y install git
添加gitolite用戶和同名用戶組,加上--system參數,用戶就不會在登陸界面顯示。
sudo adser --system --shell /bin/sh --group --disabled-password --home /home/gitolite gitolite
生成ssh key,一路回車下來。
ssh-keygen -t rsa
將你當前用戶的ssh pub key復制到/tmp下備用,由於我用的是桌面版在同一台機器上。
cp ~/.ssh/id_rsa.pub /tmp/ubuntugege.pub
如果你是ssh遠程登陸到伺服器上安裝,就要把你本地的key復制到遠程的機器上
scp ~/.ssh/id_rsa.pub gitolite.server:/tmp/ubuntugege.pub
安裝gitolite,在ubuntu中已經集成了,不用自己去下載。
sudo apt-get -y install gitolite
切換到gitolite用戶環境中,因為我要以gitolite用戶身份去初始化安裝。
sudo su - gitolite
執行初始化安裝gitolite。
gl-setup /tmp/ubuntugege.pub
把管理庫gitolite-admin克隆過來就可以開始gitolite用戶及代碼庫的管理了,如果不能克隆,那麼就說明初始化的ssh pub key錯了,如圖就是成功了。
git clone ssh://gitolite@localhost/gitolite-admin.git
我的伺服器用的是小鳥雲的,訪問很流暢。
② windows git伺服器怎麼使用
Git沒有客戶端伺服器端的概念,但是要共享Git倉庫,就需要用到SSH協議(FTP , HTTPS , SFTP等協議也能實現Git共享,此文檔不討論),但是SSH有客戶端伺服器端,所以在windows下的開發要把自己的Git倉庫共享出去的話,就必 須做SSH伺服器。一、安裝GITWindows下使用msysgit,
本文使用Git-1.7.8-preview20111206.exe 安裝要點步驟
安裝完成後,可以使用Git bash在命令行模式下操作git
二、安裝CopSSH
安裝CopSSH之前先確保防火牆開啟了SSH埠,這個雖然不影響CopSSH的安裝,但是影響SSH訪問,所以寫在前面。
CopSSH是windows下的SSH伺服器軟體,下載地址之,本文使用的是Copssh_4.1.0_Installer.exe,
安裝完成後,到控制面板中新建一個管理員賬戶root,用這個賬戶來共享SSH。然後你在賬戶管理中會看到之前的SvcCOPSSH賬戶。
將root用戶添加到CopSSH用戶中,為簡單操作,允許使用密碼認證方式
若是不允許密碼認證,則需要使用公鑰密鑰方式認證,
三、CopSSH中使用GIT
現在已經安裝GIT和CopSSH,接下來需要做的就是讓CopSSH可以使用GIT的命令,這樣不僅能夠遠程SSH管理GIT伺服器,而且可以將GIT倉庫通過SSH共享。具體的操作方法是將GIT的某些命令程序和動態鏈接庫復制到CopSSH安裝目錄下即可。
l 將$ Git\libexec\git-core目錄下的git.exe , git-receive-pack.exe , git-upload-archive.exe , git-upload-pack.exe復制到$ICW\bin目錄下
l 將$Git\bin目錄下的libiconv-2.dll復制到$ICW\bin目錄下
重啟CopSSH即可
③ 如何在伺服器上配置git伺服器
第一步,安裝git:$ sudo apt-get install git
第二步,創建一個git用戶,用來運行git服務:$ sudo adser git
第三步,創建證書登錄:收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導入到/home/git/.ssh/authorized_keys文件里,一行一個。
第四步,初始化Git倉庫:先選定一個目錄作為Git倉庫,假定是/srv/sample.git,在/srv目錄下輸入命令:$ sudo git init --bare sample.gitGit就會創建一個裸倉庫,裸倉庫沒有工作區,因為伺服器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。然後,把owner改為git:$ sudo chown -R git:git sample.git
第五步,禁用shell登錄:出於安全考慮,第二步創建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:git:x:1001:1001:,,,:/home/git:/bin/bash
改為:git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell這樣,git用戶可以正常通過ssh使用git,但無法登錄shell,因為我們為git用戶指定的git-shell每次一登錄就自動退出。
第六步,克隆遠程倉庫:現在,可以通過git clone命令克隆遠程倉庫了,在各自的電腦上運行:$ git clone git@server:/srv/sample.gitCloning into 'sample'...warning: You appear to have cloned an empty repository.
④ 如何在mac上使用git連接私有的gitlab伺服器
首先要 ssh遠程登陸工具比secureCRT等
案 基於SSH直接搭建
Git支持協議主要四種:
本: 需要文件共享系統許可權控制
HTTP:速度慢
SSH:同支持讀寫操作支持匿名讀取(Git默認協議)
GIT:快
搭建難易程度特點綜合篩選合適ssh並且部伺服器基本都ssh服務所省少麻煩基本思路給每ssh帳號家通用戶名口令訪問顯選擇做些余並且於repo許可權難管理
使用Github候利用rsa.pub公鑰/私鑰式服務端擁用戶公鑰(*.pub)跨繁瑣口令直接認證提交服務端根據同用戶身份其許可權著更加靈管理我採用種式
服務端
使遠程庫訪問更加直觀先伺服器創建名git賬戶clone候面格式:
git clone git@server:some.git
創建新用戶創建repo等目錄
$sudo adser git
$su git
$cd ~
$mkdir repos
HOME.ssh目錄沒則創建創建authorized_keys文件文件用管理所git用戶公鑰面用戶於項目著R+W許可權
客戶端
於每客戶端我需要密鑰公鑰Github用戶.ssh目錄定id_rsa.pubid_rsa兩文件其第系統公鑰另自要保存密鑰沒終端執行:ssh-keygen完自公鑰提交給管理員注冊行
完
步管理員團隊員公鑰添加authorized_keys比同susie加入:
$ cat susie.pub >> authorized_keys
至家通git@server:repos/some.git訪問公共版本庫
問題
安全問題員登錄git用戶shell,細節許可權支等控制
管理麻煩新建repo,或者增加員比較麻煩尤其修改候
案二 使用Gitolite服務
Gitolite 基於SSH協議構建便管理git repo應用通其源碼安裝.
安裝
安裝按照官給定文檔輕易實現:
$ git clone git://github.com/sitaramc/gitolite
$ mkdir -p $HOME/bin
$ gitolite/install -to $HOME/bin
$ gitolite setup -pk YourName.pub
執行條命令候gitolite識別則通面兩種式解決:
gitolite添加PATH面
通$HOME/bin/gitolite setup -pk YourName.pub 執行
至gitolite服務端搭建完畢發現HOME目錄增加文件projects.list目錄repositories,者我版本倉庫每新建repo候其創建
使用
候說gitolite管理模式創建gitolite-adminrepo管理員通像repo提交配置文件實現git伺服器控制
首先repo導入我workspace:前需要配置本ssh,gitolite要求管理員本密鑰其注冊公鑰名字致比我安裝候指定 -pk面 admin.pub 則管理員本需要由admin應私鑰我通~/.ssh/config進行配置(註:些系統用confMac OSX 效能用config).
host gitolite
user git
hostname yourhostname.com
port 22
identityfile ~/.ssh/admin
我訪問gitolite候自根據配置文件執行配置完根據面命令gitolite-admin轉移本
git clone gitolite:gitolite-admin.git
克隆完發現gitolite-admin面兩目錄其conf保存配置文件我通編輯面gitolite.conf文件管理git伺服器keydir目錄保存用戶公鑰pub文件
我講修改repo 提交候gitolite自應用些配置管理程便
配置規則
打gitolite.conf文件看其示例:
To add new users alice, bob, and carol, obtain their public keys and add them to 'keydir' as alice.pub, bob.pub, and carol.pub respectively.
To add a new repo 'foo' and give different levels of access to these users, edit the file 'conf/gitolite.conf' and add lines like this:
repo foo
RW+ = alice
RW = bob
R = carol
面配置文件新建repo foo並且添加三位項目員每許可權同提交push管理便效
視化
我能需要web界面管理些項目我目前知道三種式:
git源碼自帶組件cgi腳本實現使用gitolite服務
gitlab源框架基於ROR新版本再使用gitolite服務
FB源PHP框架 phabricator功能高端檔
⑤ 怎麼從外網訪問內網git伺服器
外網訪問內網的服務一般有 以下幾種方式:
將 內網伺服器置於DMZ區,這樣內網和外網都能訪問
在DMZ區放置一公共伺服器,通過反向代理的方式訪問
使用VPN接入內網直接訪問
⑥ 如何 連接 linux git伺服器
1、前期准備 伺服器上配置好的git git客戶端 1.1 在伺服器上安裝git (本機所使用的linux是ubuntu) 在伺服器輸入命令:sudo apt-get install git即可 然後創建名字為git的用戶組和用戶 1.2 下載客戶端 在瀏覽器地址欄輸入:https://git-for-windows.github.io/ 回車後 點擊Download進行下載 2、具體操作 2.1 在合適的位置創建一個目錄充當git遠程倉庫(本機位置為/usr/testgit),然後使用init命令初始化倉庫 在命令終端輸入: sudo git init –bare 2.2 將git init生成的目錄所屬者改為git 輸入命令:sudo chown -R git:git * 至此伺服器端的操作完成。 在客戶端合適位置使用git 客戶端從伺服器資源 2.3 首先打開git客戶端 點擊Git Bash Here 後出現 在git客戶端命名終端輸入: git clone git@xxxxxx:/rrrrr 其中xxxxxx是遠程伺服器的地址 rrrrr為git倉庫所在位置 如果配置正確你選中的目錄下會出現名字為testgit的文件夾 testgit文件夾下隨意創建若干個文件 2.3 在git客戶端上使用命令 git add 111.txt 222.txt 333.txt 或者使用git add .(將本文件夾下所有文件都add) 該命令的作用是告訴git把文件添加到git倉庫 2.4 然後使用git commit命令將文件提交到git倉庫 -m 後面的內容為本次提交文件的一些注釋內容 此時文件還沒有從本地倉庫上傳到遠程伺服器倉庫 2.5 使用push命令將本地倉庫中的內容提交到遠程倉庫 在git客戶端命令終端輸入:git push origin master 至此本地倉庫中的文件上傳已經上傳到遠程伺服器倉庫。 在其他文件夾下再次使用 git clone 命令 從遠程伺服器同步倉庫
⑦ windows 怎麼瀏覽器訪問git伺服器上的文件
安裝msysgit
安裝步驟此處略去。
END
安裝CopSSH
安裝步驟此處略去。
END
修改配置
修改CopSSH配置文件C:\Program Files\ICW\etc\sshd_config,確保如下行為非注釋行,且設置為「no」:
END
生成用戶帳號
1
在伺服器上生成Windows用戶,取消用戶下次登錄時須更改密碼,設置密碼永不過期:
2
將該用戶隸屬於GitUser組(如尚未生成改組,則先生成改組):
END
激活用戶
1
在Windows啟動程序組中,運行如下程序(C:\Program Files\ICW\bin\ copsshcp.exe):
2
進入COPSSH Control Panel應用對話框,正常情況下服務應該為正在運行(圖標為綠色,如為紅色,則可嘗試點選該按鈕,啟動該服務):
3
選擇Users頁面:
4
點選Add按鈕,出現如下導航對話框:
5
選擇Forward按鈕,出現如下頁面,選擇欲激活的用戶對應的域名及用戶名:
6
選擇Forward按鈕,進入如下頁面,選擇Linux shell and Sftp,所有選項選中:
7
選擇Forward按鈕,進入確認頁面,選擇Apply:
8
回到如下頁面,選擇Apply後,關閉。
END
公鑰文件上傳
1
從用戶處取得對應帳戶的公鑰文件authorized_keys,復制到C:\Program Files\ICW\home\ricky\.ssh目錄下(\ricky\是對應的用戶名);
2
Windows啟動程序組中運行Start a Unix BASH Shell(或Windows運行中運行命令:"C:\Program Files\ICW\bin\bash.exe" --login -i):
3
運行如下unix命令行,如運行未出錯,則完畢。
END
生成Git庫容器目錄
1
在伺服器硬碟上生成一個目錄,用來容納Git庫,比如生成E:\ GITTestRepo\目錄;
2
滑鼠右鍵點擊該目錄,選擇共享和安全…;
3
在彈出的該目錄屬性對話框的安全頁中加入用戶對應的組GitUser;
4
確認該用戶組許可權設置了允許修改、讀取和運行、列入文件夾目錄、讀取、寫入,選擇確定後完畢。
END
確認防火牆開放了22埠
確認伺服器的防火牆沒有禁止22埠的TCP/IP通信。
END
修改用戶登錄運行腳本
1
修改C:\Program Files\ICW\home\ricky\.bashrc文件(\ricky\是對應的用戶名),在文件最後加入如下行:
⑧ 自己搭建的git伺服器怎麼使用
Git沒有客戶端伺服器端的概念,但是要共享Git倉庫,就需要用到SSH協議(FTP , HTTPS , SFTP等協議也能實現Git共享,此文檔不討論),但是SSH有客戶端伺服器端,所以在windows下的開發要把自己的Git倉庫共享出去的話,就必 須做SSH伺服器。
一、安裝GIT
Windows下使用msysgit,
本文使用Git-1.7.8-preview20111206.exe 安裝要點步驟
安裝完成後,可以使用Git bash在命令行模式下操作git
二、安裝CopSSH
安裝CopSSH之前先確保防火牆開啟了SSH埠,這個雖然不影響CopSSH的安裝,但是影響SSH訪問,所以寫在前面。
CopSSH是windows下的SSH伺服器軟體,下載地址之,本文使用的是Copssh_4.1.0_Installer.exe,
安裝完成後,到控制面板中新建一個管理員賬戶root,用這個賬戶來共享SSH。然後你在賬戶管理中會看到之前的SvcCOPSSH賬戶。
將root用戶添加到CopSSH用戶中,為簡單操作,允許使用密碼認證方式
若是不允許密碼認證,則需要使用公鑰密鑰方式認證,
三、CopSSH中使用GIT
現在已經安裝GIT和CopSSH,接下來需要做的就是讓CopSSH可以使用GIT的命令,這樣不僅能夠遠程SSH管理GIT伺服器,而且可以將GIT倉庫通過SSH共享。具體的操作方法是將GIT的某些命令程序和動態鏈接庫復制到CopSSH安裝目錄下即可。
l 將$ Git\libexec\git-core目錄下的git.exe , git-receive-pack.exe , git-upload-archive.exe , git-upload-pack.exe復制到$ICW\bin目錄下
l 將$Git\bin目錄下的libiconv-2.dll復制到$ICW\bin目錄下
重啟CopSSH即可
⑨ windows搭建git伺服器後 怎麼使用
安裝msysgit
安裝步驟此處略去。
安裝CopSSH
安裝步驟此處略去。
修改配置
修改CopSSH配置文件C:\Program Files\ICW\etc\sshd_config,確保如下行為非注釋行,且設置為「no」:
生成用戶帳號
1在伺服器上生成Windows用戶,取消用戶下次登錄時須更改密碼,設置密碼永不過期:
2將該用戶隸屬於GitUser組(如尚未生成改組,則先生成改組):
激活用戶
1在Windows啟動程序組中,運行如下程序(C:\Program Files\ICW\bin\ copsshcp.exe):
2進入COPSSH ControlPanel應用對話框,正常情況下服務應該為正在運行(圖標為綠色,如為紅色,則可嘗試點選該按鈕,啟動該服務):
3選擇Users頁面:
4點選Add按鈕,出現如下導航對話框:
5選擇Forward按鈕,出現如下頁面,選擇欲激活的用戶對應的域名及用戶名:
6選擇Forward按鈕,進入如下頁面,選擇Linuxshell and Sftp,所有選項選中:
7選擇Forward按鈕,進入確認頁面,選擇Apply:
8回到如下頁面,選擇Apply後,關閉。
公鑰文件上傳
1從用戶處取得對應帳戶的公鑰文件authorized_keys,復制到C:\ProgramFiles\ICW\home\ricky\.ssh目錄下(\ricky\是對應的用戶名);
2Windows啟動程序組中運行Start a UnixBASH Shell(或Windows運行中運行命令:"C:\Program Files\ICW\bin\bash.exe" --login -i):
3運行如下unix命令行,如運行未出錯,則完畢。
生成Git庫容器目錄
1在伺服器硬碟上生成一個目錄,用來容納Git庫,比如生成E:\ GITTestRepo\目錄;
2滑鼠右鍵點擊該目錄,選擇共享和安全…;
3在彈出的該目錄屬性對話框的安全頁中加入用戶對應的組GitUser;
4確認該用戶組許可權設置了允許修改、讀取和運行、列入文件夾目錄、讀取、寫入,選擇確定後完畢。
確認防火牆開放了22埠
確認伺服器的防火牆沒有禁止22埠的TCP/IP通信。
修改用戶登錄運行腳本
1修改C:\ProgramFiles\ICW\home\ricky\.bashrc文件(\ricky\是對應的用戶名),在文件最後加入如下行: