1. 程式人生 > >CentOS下Git伺服器搭建與客戶端(windows和centos)搭建

CentOS下Git伺服器搭建與客戶端(windows和centos)搭建

一.伺服器端

1.yum安裝Git伺服器

yum install -y git

2.建立一個git使用者,用來執行git服務

useradd git

3.建立客戶端登入證書

注,收集所有需要登入的使用者的公鑰,就是他們自己生成的id_rsa.pub檔案,把所有公鑰複製到/home/git/.ssh/authorized_keys檔案裡,一行一個。

ssh-keygen -t rsa

注意不能忘記私鑰的密碼。預設會生成~/.ssh/id_rsa.pub公鑰檔案。

cd /home/git

mkdir .ssh

cp -a ~/.ssh/id_rsa.pub /home/git/.ssh/authorized_keys

chmod 755

/home/git/.ssh/authorized_keys

4.初始化Git倉庫

mkdir -p /home/data/git

cd /home/data/git

git init --bare project.git

執行以上命令 Git命令,會建立一個裸倉庫,會生成branches  config  description  HEAD  hooks  index  info  objects  refs檔案和目錄。裸倉庫沒有工作區,因為伺服器上的Git倉庫純粹是為了共享,所以不讓使用者直接登入到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。然後,把owner改為git

chown -R git:git project.git

5.禁用shell登入

注,出於安全考慮,第二步建立的git使用者不允許登入shell,這可以通過編輯/etc/passwd檔案完成。找到類似下面的一行:

cat /etc/passwd | grep git

git:x:1002:1002::/home/git:/bin/bash

vim /etc/passwd
git:x:1002:1002::/home/git:/usr/bin/git-shell
這樣,git使用者可以正常通過ssh使用git,但無法登入shell,因為我們為git使用者指定的git-shell每次一登入就自動退出。

6.克隆遠端倉庫

注,現在可以通過git clone命令克隆遠端倉庫了,在各自的電腦上執行:

客戶端生成id_rsa.pub檔案的命令

ssh-keygen -t rsa


注,$ git clone [email protected]:/home/data/git/project.git,其中git使用者名稱,git.jjhh.com伺服器,/home/data/git/prgject.git是倉庫路徑。好了,到這裡伺服器的搭建到這裡就完成了,下面我們來安裝一下客戶端。

二、客戶端

1.Windows 客戶端

1).下載客戶端

注,大家到這裡下載http://msysgit.github.io/。下面簡單演示一下安裝過程,比較簡單:




好了,到這裡就安裝完成了,安裝好以後會在桌面上有個圖示,你雙擊開啟即可。如下圖:


2.Linux 客戶端

注,Linux客戶端安裝就比較簡單了,直接用yum安裝一下就好!

[[email protected] ~]# yum install -y gi

到這裡git就安裝完成了,下面我們檢視一下版本:

[[email protected] ~]# git --version git version 1.8.2.

下面我們生成公鑰並複製到伺服器上:

[[email protected] ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 48:3c:22:76:02:f1:a2:e5:27:22:cb:4f:a7:a0:98:9d [email protected] [[email protected] ~]# cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwrmgNAca77BKzXl6BP11fdaclAoWfW+x4kPDZMPj1zFoML9JfOAS7DGY9quLMitwwfg5+U7zP/egPmAhSKCECubmodzMucnRSkJGgKCt1SlctRNDRN3OIvrecAtdZfDcBaWKLjaVzGPmhweLhr6HzfqeZU09Ccis4yK3RMwip2f+K1ZZVIOKUmL4AVFl9dqtxnQ4HlW61PUxvM/ug2M68Z0jQk5DVG8w5+dvGqX1qr5YABD1NX5Jz6aUbVVx7yyoORENxu6SK83GI/V7eOkrvBMDh9nDdwvDhPhuhBDSfE+Xi92hPJPKdNroF1vx8HMvpHME20MmjSwavPrz+B18MQ== [email protected]

下面我們複製id_rsa.pub裡的公鑰到伺服器的authorized_keys檔案中。

[[email protected] ~]# su git bash-3.2$ cd bash-3.2$ vim .ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwMU4FKB6NRc3XSoIunWsdvVVuSoncbVb5Al6lB3ciswBVd++YmJFhqwkITNGccrO5sycROs9+Fbjgd6oBSzNuaBtCIbwNNsEyM/henTl2euI3XsnJQ/ITr6c/q0P3WoGl4E2QFQ2kZqs+1eDC0CgHcBrqvFv1Jr414sVYK9lfZwIF+jDdtaBOrSJuq1Agx9pGUFUEB4tQfkXxsWm/MvOmKAVvduKDE1eenUEL9zzyeELPcSXLe3NOoTjZhkX6EEXxQR1ZiZRFywLpfM4qopZ10to2KIUyVtzw6hx6V3cg7kn40lYVW0EAMATw9dVldwcRUI+kJzJSKUTKDVSwY3/+Q== [email protected] ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsmmJuR+KhRSpdSirCiL30RA8WbfgicY1z7itWVnKHJW6hTuJFhzruY59FilVjJR1hbQBluP9JnK3XPSK9PSg+bwiJ2iQRa39rXck35r+trVOLyNbPyfKVRfOemD8YuykMlyr5JeW8gZjsHEuLnJ8//RiCiYzd3RT/SSUQ4yawDoIIWkz3eUSL09xoCRZFBsAp+S/LD3vx2MN+FNOHwvqcE+yK3oRNIqjWwLoKE0e5TRnqNgrPQ95PJYB3XPUulzaeMwsWPZs7jIUMl/5yEqSgAkioa8SVMOsikYJG/erv99NNVgFmpCBIiWqKEGkNrIpYzLLHDSYQ4g5Gbci/RZ54Q== [email protected] ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NwUHeNNi+PC6KlrcJrXXDmKxRMmgHIPp79sgX6zqfdSlmNj7rBPQeyEKS9Wg8yI6jd8aG2jsUx99Vjti2VK2vEXKkRHxwID7ri69gE71RfDtv6ekafnzLo14J8hAp0spMk+N3wEAQRYDmcYo1wmnm/jMBedGrHj4NJQ1vYy1hVtJasGMSzjcMrlz9qvaluWnQ5tQjKFQVVwKsRRRzs8qTvzVhLJt4NQ+CAN45tqfsRuf58Uba9QNK7/6xSUiIKXQiILz8PMGJ3MnlV+eN3wx2aeztdevxu9plggtG05SMmd8GNVzXrN1IaxXSvz0UwjQ2kygu7aCqO8AZWH49rouw== [email protected] ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwrmgNAca77BKzXl6BP11fdaclAoWfW+x4kPDZMPj1zFoML9JfOAS7DGY9quLMitwwfg5+U7zP/egPmAhSKCECubmodzMucnRSkJGgKCt1SlctRNDRN3OIvrecAtdZfDcBaWKLjaVzGPmhweLhr6HzfqeZU09Ccis4yK3RMwip2f+K1ZZVIOKUmL4AVFl9dqtxnQ4HlW61PUxvM/ug2M68Z0jQk5DVG8w5+dvGqX1qr5YABD1NX5Jz6aUbVVx7yyoORENxu6SK83GI/V7eOkrvBMDh9nDdwvDhPhuhBDSfE+Xi92hPJPKdNroF1vx8HMvpHME20MmjSwavPrz+B18MQ== [email protected]

下面我們clone一個倉庫到本地的目錄中。

[[email protected] ~]# cd /data/dev [[email protected] dev]# git clone [email protected]:/data/git/project.git Cloning into 'project'... The authenticity of host 'git.jjhh.com (114.112.173.150)' can't be established. RSA key fingerprint is ca:ec:a2:7e:e6:89:ca:19:d3:93:7f:4b:c3:c0:c7:fd. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'git.jjhh.com,114.112.173.150' (RSA) to the list of known hosts. remote: Counting objects: 50, done. remote: Compressing objects: 100% (42/42), done. remote: Total 50 (delta 21), reused 0 (delta 0) Receiving objects: 100% (50/50), 4.02 KiB, done. Resolving deltas: 100% (21/21), done. [[email protected] dev]# ls project [[email protected] dev]# cd project/ [[email protected] project]# ls index.html

好了,到這裡我們的git客戶端到這裡就全部安裝完成了。



相關推薦

CentOSGit伺服器搭建客戶windowscentos搭建

一.伺服器端 1.yum安裝Git伺服器 yum install -y git 2.建立一個git使用者,用來執行git服務 useradd git 3.建立客戶端登入證書 注,收集所有需要登入的使用者的公鑰,就是他們自己生成的id_rsa.pub檔案,把所有公鑰複製到/

zabbix伺服器客戶Linux+Windows搭建

zabbix監控搭建 一、搭建LNMP環境(MySQL) 建立資料庫以及授權Qy123123. mysql> create database zabbix character set utf8; mysql> grant all on zabbix.* to [email p

【開發筆記】Unity聯網鬥地主的實現一,伺服器客戶的資料傳遞流程

話不多說,先上我李老師的思維導圖 大致構思了一個框架 1.首先要定義一下伺服器與客戶端的傳輸協議,必須保持一致 2.定義服務於客戶端傳輸的訊息型別,如(申請加入,同意加入,出牌,之類的) 3.定義一下牌的型別,出的牌的型別,在客戶端判斷是否可以出牌,牌型傳給伺服器,伺服器在完成三個玩家的出

Memcached客戶memcached-Java-client Spring整合伺服器

Memcached客戶端與Spring整合,客戶端使用的是Memcached-Java-Client-release_2.6.3 1. 配置Maven <!-- Memcached client --> <dependency> <g

Qt實現伺服器客戶傳輸文字圖片Qt②

初學者記錄學習內容,如有錯誤請各位前輩指點。 此次工程完成過程借鑑了下面得兩個帖子,附上鍊接,並致以感謝: qt 寫的tcp客戶端程式實現簡單的連線接受和傳送訊息 qt寫的一個簡單的tcp伺服器程式,可以接受訊息傳送資料 好了閒話少說進入正題。 瞭解C

.NET伺服器快取客戶快取

在web程式中,我們為了避免因高併發產生的資料訪問帶來的效能問題,我們有必要把資料緩存於伺服器端,使得後來的訪問可以直接呼叫快取資料,起到資料重用的作用。快取有很多實現方法,所有這些可以被分為兩類,基於記憶體的快取和基於磁碟的快取:1、記憶體駐留快取——包含在記憶體中臨時儲存

C++ Socket 一個伺服器 多個客戶 阻塞式

服務端 ServerNet.h #pragma once #include <stdio.h> #include <winsock.h> #include<vector> #include<iterator>

Delphi2010中DataSnap高階技術(3)—DataSnap伺服器如何得到客戶的IP

作為一個伺服器軟體,必須做到對客戶端強有力的控制,想要控制,就必須得到客戶端的網路基本資訊,比如客戶端IP和埠。有了客戶端IP就能隨心所欲操控客戶端,比如終止某些客戶端的連線、限制功能等等。 在delphi2010中的datasnap伺服器如何獲得客戶端ip,的確花了我點時

Git客戶Windows系統的使用

本文環境:             作業系統:Windows XP SP3            Git客戶端:TortoiseGit-1.8.8.0-32bit     一、安裝Git客戶端             全部安裝均採用預設!          

本地客戶自己的電腦連線遠端Oracle資料庫伺服器客戶安裝步驟

如果本地自己的電腦沒有安裝Oracle(伺服器端資料庫),那就要單獨安裝HA-Instant Client-v11.2.0.3.0.exe(oracle_client客戶端) 如果本地安裝了Oracle(伺服器端資料庫),就包含了HA-Instant Client-v11.2.0.3.0.exe,不需要單獨安

使用Swagger生成Spring Boot REST客戶支持Feign待實踐

github target rate swa stack ng- maven 臃腫 api 如果項目上使用了Swagger做RESTful的文檔,那麽也可以通過Swagger提供的代碼生成器生成客戶端代碼,同時支持Feign客戶端。 但是經過測試,生成Feign代碼和RE

使用SVN客戶Windows

rto pro logs tortoise win .cn blog .html 服務端 SVN服務端環境參考:https://www.cnblogs.com/pzk7788/p/9446424.html這裏我使用一臺雲服務器(139.xxx.xxx.89)作為SVN服務端

Rabbitmq C++客戶基於rabbitmq-c

    最近專案使用了rabbitmq訊息佇列,需要基於rabbitmq-c(https://github.com/alanxz/rabbitmq-c)進行一層封裝,然後根據官方自帶示例以及網上程式碼整理了一下。    傳送者需要宣告exchange,並指定routekey進

eclipse git 外掛整合本地使用傻瓜教程 一

1.整合外掛 進入到外掛整合功能,在輸入框寫入    Git - http://download.eclipse.org/egit/updates 點選add按鈕,出現如下對話方塊 點選ok按鈕出現以下對話方塊 只選擇EGit的兩個選項即可,點選next後等

TortoiseSVN-x64-svn客戶附下載地址(筆記)

VisualSVN-Server伺服器下載地址:VisualSVN-Server伺服器下載地址:https://download.csdn.net/download/qq_31362105/10493065TortoiseSVN-x64-svn下載地址安裝教程:無腦點選下一步

eclipse git 外掛整合本地使用傻瓜教程 一

1.整合外掛 進入到外掛整合功能,在輸入框寫入    git - http://download.eclipse.org/egit/updates 點選add按鈕,出現如下對話方塊 點選ok按鈕出現以下對話方塊 只選擇EGit的兩個選項即可,點選next後等

FWORK-數據存儲篇 -- 範式反模式 學習理解

str -- 計數 查詢 空間 取數據 重點 保持數據 -s 理解 1、第二範式的側重點是非主鍵列是否完全依賴於主鍵,還是依賴於主鍵的一部分。第三範式的側重點是非主鍵列是直接依賴於主鍵,還是直接依賴於非主鍵列。 2、 反模式 範式可以避免數據冗余,減少數據庫的

Keras 切換後TheanoTensorFlow

實驗室新裝了keras,發現keras預設後端是tensorflow,想換回theano,看了官方文件也沒搞懂,最終搞定,很簡單。 中文文件的描述:keras中文文件,切換後端 其實就是在C:\Us

【Keras】切換後TheanoTensorFlow

原文見:http://blog.csdn.net/tangwenbo124/article/details/52627774?locationNum=7 實驗室新裝了keras,發現keras預設後端是tensorflow,想換回theano,看了官方文件也沒搞懂,最終

Android使用HttpClient以Post、Get請求伺服器傳送資料的方式普通json

HttpParams params = new BasicHttpParams();//建立一個引數物件,用來儲存設定的各個引數 HttpProtocolParams.setContentCharset(params, "UTF-8");// 設定訊息所用的字符集 HttpProtocolParams.s