CentOS下Git的伺服器版安裝和使用
使用了一段時間的git,使用過①:TortoiseGit和②:eclipse的git外掛和③Git-2.6.2-64-bit的命令列,前兩者是視覺化的,我選擇的最後的命令列。
Git的思想,遵循GNU的思想:GNU是“GNU is Not Unix”的遞迴縮寫。Git繼承了開源社群的精神,不直接支援許可權控制。但也有指令碼介面和第三方管理許可權。不過視程式碼為生命,視員工為竊賊的公司,就感覺沒必要用。但可以自己安裝gitlab,自己的git伺服器。
git和github和gitlab的區別:
GitLab - 基於Git的專案管理軟體。
Github - 一個免費/收費網站,提供給使用者空間建立git倉儲,儲存使用者的一些資料文件或者程式碼等。
GitLab - 是一個用於倉庫管理系統的開源專案。使用Git作為程式碼管理工具,並在此基礎上搭建起來的web服務。
Git – 分散式版本控制系統通常也有一臺充當“中央伺服器”的電腦,但這個伺服器的作用僅僅是用來方便“交換”大家的修改,沒有它大家也一樣幹活,只是交換修改不方便而已。
詳細請學習,這兒的講解nice:
閒話不說,開始搭建自己的git伺服器:
系統:#cat /etc/issue –> CentOS release 6.5 (Final)和 #git –version –> git version 1.7.1
1、安裝git
安裝git
yum install git
版本git
git --version
解除安裝git
yum remove git
2、搭建伺服器
建立git執行使用者並設定密碼
useradd git
passwd git
建立git目錄和一個空git倉庫
cd / mkdir data cd data mkdir git cd git git init --bare test.git chown -R git:git test.git
客戶執行git bash
git clone [email protected]:/data/git/test.git
cd test
git remote -v
詳細講解
①:建立git伺服器工作空間:
#mkdir -p /home/repository/git
注:-p引數:如果一個目錄的父目錄不存在,就建立它
②:新建組和使用者
#groupadd git
#useradd git -g git -d /home/repository/git/ -s /usr/bin/git-shell
注:若不能執行則,先-s /bin/sh 後手動修改 /etc/passwd檔案的/usr/bin/git-shell
#grep git /etc/passwd
git:x:501:501::/home/repository/git/:/usr/bin/git-shell
③:更改許可權git檔案和目錄許可權:
#chown -R git.git /home/repository/git/
#ls -la
drwxr-xr-x 3 root root 4096 Jan 19 13:25 .
drwxr-xr-x. 6 root root 4096 Jan 17 22:51 ..
drwxr-xr-x 4 git git 4096 Jan 19 13:25 git
④:初始化Git伺服器倉庫:
伺服器上的Git倉庫純粹是為了共享,並且使用者無許可權直接登入到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。
git init --bare kekeai.git
注:a,不使用--bare選項時,就會生成.git目錄以及其下的版本歷史記錄檔案,這些版本歷史記錄檔案就存放在.git目錄下;
b,使用--bare選項時,不再生成.git目錄,而是隻生成.git目錄下面的版本歷史記錄檔案,這些版本歷史記錄檔案也不再存放在.git目錄下面,而是直接存放在版本庫的根目錄下面。
⑤:本地使用者生成自己的公鑰,並收集所有使用者的id_rsa.pub檔案的資訊,把所有公鑰匯入到/home/repository/git/.ssh/authorized_keys檔案裡:目錄寫錯將出現錯誤2[文章末尾備註]檔案裡,一行一個!
⑥:本地clone程式碼,自己已經裝好了git命令列[ip自己伺服器]:
$ git clone git@123.12.188.057:/home/repository/git/kekeai.git
Cloning into 'kekeai'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
則ok!
3、遇到錯誤
錯誤1:
$ git clone [email protected]:/home/repository/git/kekeai.git
Cloning into 'kekeai'...
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:OHPAU2Z3PkMFJYco3F/YB3slBeVz8IlP7ig4CEcm624.
Please contact your system administrator.
Add correct host key in /c/Users/Tony_tian/.ssh/known_hosts to get rid of this message.
Offending RSA key in /c/Users/Tony_tian/.ssh/known_hosts:2
RSA host key for 123.12.188.057 has changed and you have requested strict checking.
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
解決 1:
刪除自己本地[windows]的C:\Users\Sony.ssh下known_hosts檔案下,刪除,對應當前”192.168.31.157“這個伺服器的:
192.168.31.157 ssh-rsa ……這一行!
問題2:
git在clone時候許可權要輸入密碼:
$ git clone [email protected]:/home/repository/git/kekeai.git
Cloning into 'kekeai'...
The authenticity of host '123.12.188.057 (123.12.188.057)' can't be established.
RSA key fingerprint is SHA256:OHPAU2Z3PkMFJYco3F/YB3slBeVz8IlP7ig4CEcm624.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '123.12.188.057' (RSA) to the list of known hosts.
[email protected]'s password:
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
解決2:
1:檢視使用者的公鑰位置是否在,git或其他使用者的那個指定的目錄下,”公鑰檔案路徑錯誤”,請檢視!
2:如果不是root,則檢視,檔案的許可權問題!
3:檢視本地的id_rsa.pub的內容,是否告訴伺服器的,authorized_keys。
4:刪除本地known_hosts中,當前伺服器的配置,重新開啟一個git命令列,clone就好!
備註:ubuntu下安裝的,gitweb和git的安裝包:
5、建立SSH Key
首先在使用者主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個檔案,如果已經有了,可直接跳到下一步。如果沒有,開啟Shell(Windows下開啟Git Bash),建立SSH Key:
$ ssh-keygen -t rsa -C "[email protected]"
你需要把郵件地址換成你自己的郵件地址,然後一路回車,使用預設值即可,由於這個Key也不是用於軍事目的,所以也無需設定密碼。
6、Git伺服器開啟RSA認證
然後就可以去Git伺服器上新增你的公鑰用來驗證你的資訊了。在Git伺服器上首先需要將/etc/ssh/sshd_config中將RSA認證開啟,即:
StrictModes no #在使用者名稱和其公鑰檔名不匹配時將通過驗證
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重啟ssh服務
service sshd restart 或
/etc/init.d/sshd restart
這裡我們可以看到公鑰存放在.ssh/authorized_keys檔案中。所以我們在/home/git下建立.ssh目錄,然後建立authorized_keys檔案,並將剛生成的公鑰匯入進去。
然後再次clone的時候,或者是之後push的時候,就不需要再輸入密碼了:
[email protected]/E/testgit/8.34
$ git clone [email protected]:/data/git/learngit.git
Cloning into 'learngit'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
7、禁用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每次一登入就自動退出。
相關推薦
CentOS下Git的伺服器版安裝和使用
使用了一段時間的git,使用過①:TortoiseGit和②:eclipse的git外掛和③Git-2.6.2-64-bit的命令列,前兩者是視覺化的,我選擇的最後的命令列。 Git的思想,遵循GNU的思想:GNU是“GNU is Not Unix”的遞迴縮寫
CentOS下Git伺服器搭建與客戶端(windows和centos)搭建
一.伺服器端 1.yum安裝Git伺服器 yum install -y git 2.建立一個git使用者,用來執行git服務 useradd git 3.建立客戶端登入證書 注,收集所有需要登入的使用者的公鑰,就是他們自己生成的id_rsa.pub檔案,把所有公鑰複製到/
centos下nodejs,npm的安裝和nodejs的升級
ted ble entos nodejs install ins npm print nbsp 安裝: $ sudo yum install epel-release$ sudo yum install nodejs$ node -v$ yum install -y npm
CentOS下的Mysql的安裝和使用
lan eas 刪除數據 匹配 iad 輸入密碼 查詢語句 所在 global 1.使用安裝命令 :yum -y install mysql mysql-server mysql-devel 安裝完成卻發現Myserver安裝缺失,在網上找原因,原來是因為CentOS 7上
LNMP下FTP伺服器的安裝和使用(Pureftpd和Proftpd)
FTP是網站檔案維護中使用比較多的,目前LNMP一鍵安裝包中有Pureftpd和Proftpd伺服器安裝指令碼,LNMP預設不安裝任何FTP伺服器,需要使用者自行安裝(1.2開始不再提供proftpd的安裝指令碼)。 一、Pureftpd LNMP一鍵安裝包裡1.3及更高版本不需要MySQL支援,無影象介
Nginx 之一 伺服器的安裝部署(一): LInux 環境下 Nginx 伺服器的安裝和基本配置
一、編譯和安裝前的準備工作 本部落格依賴環境: Linux Ubuntu 16.04 1.1 足夠的磁碟空間 能夠裝得下 Nginx 的軟體包和安裝檔案, 這個基本都能滿足。 1.2 需要的工具 為了編譯 Nginx 原始碼, 需要安裝標準的 GCC 編譯器。
centos7下ftp伺服器的安裝和配置
1. 刪除firewalld防火牆 systemctl stop firewalld.service yum remove firewalld.service 2.安裝iptables防火強 yum install ipta
Ubuntu下SVN伺服器的安裝和配置 備份
svn備份常用命令 1、完全備份和增量備份svn。 svnadmin dump /svn/project/www > full.svn.bak #完全備份/svn/project/www這個版本庫,並另存為full.svn.bak svnadmin dump /svn/projec
centos下git的安裝及配置
⑴.檢視系統是否已經安裝 git :git --version ⑵.yum 安裝git:yum install git ⑶.安裝成功:yum --version ⑷.解除安裝git:yum remove git
centos 6 下,zephir的安裝和使用
zephir是用c寫的php擴充套件,zephir或許會開啟一個新的PHP編寫方式。 在這之前,如果我們要編寫php的擴充套件,一般都是c++/clang/vc等等。 但是現在,我們有了新的選擇: zephir. zephir本身並不是為了替代c++/clang/vc等。 它本質是介於c和
Centos 6.5下的OPENJDK解除安裝和SUN的JDK安裝、環境變數配置
不多說,直接上乾貨! 說明 圖形介面安裝,會自帶有Centos6.5自帶的OPRNJDK!!! *********************************自帶的OPENJDK的解除安裝*********************************
CentOS 6.3下Samba伺服器的安裝
一、簡介 Samba是一個能讓Linux系統應用Microsoft網路通訊協議的軟體,而SMB是Server Message Block的縮寫,即為伺服器訊息塊 ,SMB主要是作為Microsoft的網路通訊協議,後來Samba將SMB通訊協議應用到了Linux系統上,就形成了現在的Samba軟體
Centos下Spark單機版(python)安裝配置
如果上面都成功了,那說明我們就基本安裝成功了,可以用scala或者python來開發相關程式了。但是如果我們希望能夠在一個很清新的IDE中開發程式怎麼辦?那麼這裡強烈推薦一款互動式的開發工具-jupyter notebook。接下來我們就來配置該工具,以保證能連線上sprak。
[教程] 4月22更新:WIN下懶人版安裝教程(U盤版和硬碟版)
原文出處:http://bbs.pcbeta.com/viewthread-920341-1-1.html 謝謝博主大神,基本上看得懂, 不懂的就google一下, 我6個小時下載軟體到安裝完成。 2012.4.22更新: =====================
ZABBIX實踐(二) centos下的Agent端部署和安裝
首先重複一下前面的規劃 server端: 192.168.136.144 centos6.5 (虛擬機器) agent端: 192.168.136.155 centos6.5
【Samba】CentOS 6.6 下Samba伺服器的安裝與配置
一、簡介 Samba是一個能讓Linux系統應用Microsoft網路通訊協議的軟體,而SMB是Server Message Block的縮寫,即為伺服器訊息塊 ,SMB主要是作為Microsoft的網路通訊協議,後來Samba將SMB通訊協議應用到了Li
Centos下使用壓縮包安裝MySQL5.7
san lib 重命名 壓縮 datadir microsoft wid 大小 -s 今天在自己的centos服務器上安裝mysql,碰到的問題相當的多,裝個mysql遠比在windows復雜的多。這裏通過查找的一些博文(包括前幾篇)來記錄安裝mysql時的各種問題。可能步
Centos7下關於memcached的安裝和簡單使用
entos name 終端 說明 所有 local memcach 們的 clas 在這裏,由於用編譯安裝memcached服務端過於復雜,因此我選用依賴管理工具 yum 來實現 memcached 的服務端安裝: [root@localhost /]# yum insta
Linux下git源碼安裝【轉】
lac itl 允許 pla rom code ins 8.0 代碼 轉自:http://blog.csdn.net/u012889638/article/details/51167123 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 版本信息:Cent
Linux下使用腳本安裝和升級pip
spa style 通過 腳本 linux下 調用 源碼編譯安裝 trap ont 要安裝或升級pip,需要下載 get-pip.py. 地址:https://bootstrap.pypa.io/get-pip.py ]# wget https://bootstrap.py