Git 伺服器搭建與用戶端安裝,git搭建
大綱:
一、前言
二、搭建Git伺服器
-
yum安裝Git伺服器
-
建立一個git使用者,用來運行git服務
-
建立用戶端登入認證
-
初始化Git倉庫
-
禁用shell登入
-
複製遠程倉庫
三、安裝用戶端
四、總結
注,測試機 CentOS 5.5 x86_64,Git 伺服器版本:git version 1.8.2.1,用戶端版本:git version 1.9.2.msysgit.0。所有軟體請到這裡下載:http://msysgit.github.io/。
一、前言
在上一篇部落格中我們主要講解Git是什麼,Git的基本原理,講解一些有關Git的基礎知識,讓我們簡單的瞭解一下Git,當然我們還有很多問題沒有搞清楚,嘿嘿!不管理怎麼樣,在我們弄清楚這些問題之前,我們得有台Git伺服器是吧,嘿嘿!好了,下面我們就來一起搭建一台Git伺服器。
二、搭建Git伺服器
1.yum安裝Git伺服器
| 1 |
[root@git ~]# yum install -y git |
2.建立一個git使用者,用來運行git服務
| 1 |
[root@git ~]# adduser git |
3.建立用戶端登入認證
注,收集所有需要登入的使用者的公開金鑰,就是他們自己產生的id_rsa.pub檔案,把所有公開金鑰複製到/home/git/.ssh/authorized_keys檔案裡,一行一個。嘿嘿!
1).用戶端產生id_rsa.pub檔案的命令
| 123 |
$ ssh-keygen -t rsa$ cat .ssh/id_rsa.pubssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NwUHeNNi+PC6KlrcJrXXDmKxRMmgHIPp79sgX6zqfdSlmNj7rBPQeyEKS9Wg8yI6jd8aG2jsUx99Vjti2VK2vEXKkRHxwID7ri69gE71RfDtv6ekafnzLo14J8hAp0spMk+N3wEAQRYDmcYo1wmnm/jMBedGrHj4NJQ1vYy1hVtJasGMSzjcMrlz9qvaluWnQ5tQjKFQVVwKsRRRzs8qTvzVhLJt4NQ+CAN45tqfsRuf58Uba9QNK7/6xSUiIKXQiILz8PMGJ3MnlV+eN3wx2aeztdevxu9plggtG05SMmd8GNVzXrN1IaxXSvz0UwjQ2kygu7aCqO8AZWH49rouw== leo@LEO-PC |
注,一路斷行符號即可,將產生的id_rsa.pub,複製給管理員,幫你在伺服器上增加一下,下次你用git時就不需要輸入使用者名稱和密碼了。
2).查看伺服器上authorized_keys檔案
| 1234 |
[root@git ~]# cat /home/git/.ssh/authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwMU4FKB6NRc3XSoIunWsdvVVuSoncbVb5Al6lB3ciswBVd++YmJFhqwkITNGccrO5sycROs9+Fbjgd6oBSzNuaBtCIbwNNsEyM/henTl2euI3XsnJQ/ITr6c/q0P3WoGl4E2QFQ2kZqs+1eDC0CgHcBrqvFv1Jr414sVYK9lfZwIF+jDdtaBOrSJuq1Agx9pGUFUEB4tQfkXxsWm/MvOmKAVvduKDE1eenUEL9zzyeELPcSXLe3NOoTjZhkX6EEXxQR1ZiZRFywLpfM4qopZ10to2KIUyVtzw6hx6V3cg7kn40lYVW0EAMATw9dVldwcRUI+kJzJSKUTKDVSwY3/+Q== root@CHENMINGQIANssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsmmJuR+KhRSpdSirCiL30RA8WbfgicY1z7itWVnKHJW6hTuJFhzruY59FilVjJR1hbQBluP9JnK3XPSK9PSg+bwiJ2iQRa39rXck35r+trVOLyNbPyfKVRfOemD8YuykMlyr5JeW8gZjsHEuLnJ8//RiCiYzd3RT/SSUQ4yawDoIIWkz3eUSL09xoCRZFBsAp+S/LD3vx2MN+FNOHwvqcE+yK3oRNIqjWwLoKE0e5TRnqNgrPQ95PJYB3XPUulzaeMwsWPZs7jIUMl/5yEqSgAkioa8SVMOsikYJG/erv99NNVgFmpCBIiWqKEGkNrIpYzLLHDSYQ4g5Gbci/RZ54Q== Administrator@WIN2003X323ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NwUHeNNi+PC6KlrcJrXXDmKxRMmgHIPp79sgX6zqfdSlmNj7rBPQeyEKS9Wg8yI6jd8aG2jsUx99Vjti2VK2vEXKkRHxwID7ri69gE71RfDtv6ekafnzLo14J8hAp0spMk+N3wEAQRYDmcYo1wmnm/jMBedGrHj4NJQ1vYy1hVtJasGMSzjcMrlz9qvaluWnQ5tQjKFQVVwKsRRRzs8qTvzVhLJt4NQ+CAN45tqfsRuf58Uba9QNK7/6xSUiIKXQiILz8PMGJ3MnlV+eN3wx2aeztdevxu9plggtG05SMmd8GNVzXrN1IaxXSvz0UwjQ2kygu7aCqO8AZWH49rouw== leo@LEO-PC |
說明:我這裡有三個使用者登入伺服器,所以我這裡就有三個ssh-rsa,大家可以看一下。
4.初始化Git倉庫
注,先選定一個目錄作為Git倉庫,這裡是/data/git/project.git。
| 1234 |
[root@git ~]# cd /data/git/[root@git git]# git init --bare project.git[root@git project.git]# lsbranches config description HEAD hooks index info objects refs |
執行以上命令 Git命令,會建立一個裸倉庫,裸倉庫沒有工作區,因為伺服器上的Git倉庫純粹是為了共用,所以不讓使用者直接登入到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。然後,把owner改為git:
| 1234 |
[root@git git]# chown -R git.git project.git[root@git git]# ls -l總計 4drwxr-xr-x 7 git git 4096 05-09 13:50 project.git |
5.禁用shell登入
注,出於安全考慮,第二步建立的git使用者不允許登入shell,這可以通過編輯/etc/passwd檔案完成。找到類似下面的一行:
| 12 |
[root@git ~]# cat /etc/passwd | grep gitgit:x:1001:1001:git version control:/home/git:/bin/bash |
改為:
| 12 |
[root@git ~]# vim /etc/passwdgit:x:1001:1001:git version control:/home/git:/usr/bin/git-shell |
這樣,git使用者可以正常通過ssh使用git,但無法登入shell,因為我們為git使用者指定的git-shell每次一登入就自動結束。
6.複製遠程倉庫
注,現在可以通過git clone命令複製遠程倉庫了,在各自的電腦上運行:
注,$ git clone git@git.jjhh.com:/data/git/project.git,其中git使用者名稱,git.jjhh.com伺服器,/data/git/prgject.git是倉庫路徑。好了,到這裡伺服器的搭建到這裡就完成了,下面我們來安裝一下用戶端。
三、安裝用戶端
1.Windows 用戶端
1).下載用戶端
注,大家到這裡下載http://msysgit.github.io/。下面簡單示範一下安裝過程,比較簡單:
好了,到這裡就安裝完成了,安裝好以後會在案頭上有個表徵圖,你雙擊開啟即可。如:
2.Linux 用戶端
注,Linux用戶端安裝就比較簡單了,直接用yum安裝一下就好!
| 1 |
[root@test ~]# yum install -y git |
到這裡git就安裝完成了,下面我們查看一下版本:
| 12 |
[root@test ~]# git --versiongit version 1.8.2. |
下面我們產生公開金鑰並複製到伺服器上:
| 123456789101112 |
[root@test ~]# ssh-keygen -t rsaGenerating 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 root@test.com[root@test ~]# cat .ssh/id_rsa.pubssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwrmgNAca77BKzXl6BP11fdaclAoWfW+x4kPDZMPj1zFoML9JfOAS7DGY9quLMitwwfg5+U7zP/egPmAhSKCECubmodzMucnRSkJGgKCt1SlctRNDRN3OIvrecAtdZfDcBaWKLjaVzGPmhweLhr6HzfqeZU09Ccis4yK3RMwip2f+K1ZZVIOKUmL4AVFl9dqtxnQ4HlW61PUxvM/ug2M68Z0jQk5DVG8w5+dvGqX1qr5YABD1NX5Jz6aUbVVx7yyoORENxu6SK83GI/V7eOkrvBMDh9nDdwvDhPhuhBDSfE+Xi92hPJPKdNroF1vx8HMvpHME20MmjSwavPrz+B18MQ== root@test.com |
下面我們複製id_rsa.pub裡的公開金鑰到伺服器的authorized_keys檔案中。
| 1234567 |
[root@git ~]# su gitbash-3.2$ cdbash-3.2$ vim .ssh/authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwMU4FKB6NRc3XSoIunWsdvVVuSoncbVb5Al6lB3ciswBVd++YmJFhqwkITNGccrO5sycROs9+Fbjgd6oBSzNuaBtCIbwNNsEyM/henTl2euI3XsnJQ/ITr6c/q0P3WoGl4E2QFQ2kZqs+1eDC0CgHcBrqvFv1Jr414sVYK9lfZwIF+jDdtaBOrSJuq1Agx9pGUFUEB4tQfkXxsWm/MvOmKAVvduKDE1eenUEL9zzyeELPcSXLe3NOoTjZhkX6EEXxQR1ZiZRFywLpfM4qopZ10to2KIUyVtzw6hx6V3cg7kn40lYVW0EAMATw9dVldwcRUI+kJzJSKUTKDVSwY3/+Q== root@CHENMINGQIANssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsmmJuR+KhRSpdSirCiL30RA8WbfgicY1z7itWVnKHJW6hTuJFhzruY59FilVjJR1hbQBluP9JnK3XPSK9PSg+bwiJ2iQRa39rXck35r+trVOLyNbPyfKVRfOemD8YuykMlyr5JeW8gZjsHEuLnJ8//RiCiYzd3RT/SSUQ4yawDoIIWkz3eUSL09xoCRZFBsAp+S/LD3vx2MN+FNOHwvqcE+yK3oRNIqjWwLoKE0e5TRnqNgrPQ95PJYB3XPUulzaeMwsWPZs7jIUMl/5yEqSgAkioa8SVMOsikYJG/erv99NNVgFmpCBIiWqKEGkNrIpYzLLHDSYQ4g5Gbci/RZ54Q== Administrator@WIN2003X323ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NwUHeNNi+PC6KlrcJrXXDmKxRMmgHIPp79sgX6zqfdSlmNj7rBPQeyEKS9Wg8yI6jd8aG2jsUx99Vjti2VK2vEXKkRHxwID7ri69gE71RfDtv6ekafnzLo14J8hAp0spMk+N3wEAQRYDmcYo1wmnm/jMBedGrHj4NJQ1vYy1hVtJasGMSzjcMrlz9qvaluWnQ5tQjKFQVVwKsRRRzs8qTvzVhLJt4NQ+CAN45tqfsRuf58Uba9QNK7/6xSUiIKXQiILz8PMGJ3MnlV+eN3wx2aeztdevxu9plggtG05SMmd8GNVzXrN1IaxXSvz0UwjQ2kygu7aCqO8AZWH49rouw== leo@LEO-PCssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwrmgNAca77BKzXl6BP11fdaclAoWfW+x4kPDZMPj1zFoML9JfOAS7DGY9quLMitwwfg5+U7zP/egPmAhSKCECubmodzMucnRSkJGgKCt1SlctRNDRN3OIvrecAtdZfDcBaWKLjaVzGPmhweLhr6HzfqeZU09Ccis4yK3RMwip2f+K1ZZVIOKUmL4AVFl9dqtxnQ4HlW61PUxvM/ug2M68Z0jQk5DVG8w5+dvGqX1qr5YABD1NX5Jz6aUbVVx7yyoORENxu6SK83GI/V7eOkrvBMDh9nDdwvDhPhuhBDSfE+Xi92hPJPKdNroF1vx8HMvpHME20MmjSwavPrz+B18MQ== root@test.com |
下面我們clone一個倉庫到本地的目錄中。
| 1234567891011121314151617 |
[root@test ~]# cd /data/dev[root@test dev]# git clone git@git.jjhh.com:/data/git/project.gitCloning 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)? yesWarning: 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.[root@test dev]# lsproject[root@test dev]# cd project/[root@test project]# lsindex.html |
好了,到這裡我們的git用戶端到這裡就全部安裝完成了。
原作
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。