vps(系統(tǒng)centos6.2,git版本1.7)
1.安裝git
方法一.yum install -y git(最簡單的方法)
方法二.下載git源碼編譯安裝,需要安裝編譯工具(不做介紹)
2.建立git用戶(可選)
注意:有些系統(tǒng)在你安裝git的時(shí)候,可能已經(jīng)給你自動(dòng)建立了git用戶,因此你可以忽略這一步.
添加git用戶
//自動(dòng)在home下建立git目錄
useradd git
//切換到/home下查看
ls -al
//注意一定要注意查看git目錄的擁有者(必須是git)和所屬用戶組(可以是git或者root),
//否則在以后設(shè)置免密碼clone和push的時(shí)候會(huì)出現(xiàn)Permission denied error的錯(cuò)誤.
//修改git目錄擁有者和所屬群組為git
chown -R git:git git
F9D26F43-5BBE-4C51-8E72-8F94171EBD94.png
4.修改git用戶的操作權(quán)限
vi /etc/passwd
//找到git用戶的那一行,修改如下:不允許git用戶的ssh登錄
git:x:500:500::/home/git:/usr/bin/git-shell
3.在服務(wù)器上建立裸版本庫
mkdir /home/testgit
//這里 git init 是初始化空倉庫的意思妻往,而參數(shù) --bare 是代表創(chuàng)建裸倉庫,而參數(shù) --bare 是代表創(chuàng)建裸倉庫
git init --bare sample.git
注意:一定要查看testgit目錄的擁有者(必須是git)和所屬用戶組(可以是git或者root),否則在以后設(shè)置免密碼clone和push的時(shí)候會(huì)出現(xiàn)Permission denied error的錯(cuò)誤.
5.clone遠(yuǎn)程倉庫
cd Desktop
git clone git@115.159.146.94:/home/testgit/sample.git
//這時(shí)候會(huì)讓你輸入git的密碼,但是我們并沒有設(shè)置git用戶的密碼
6配置公鑰進(jìn)行免密碼登錄 clone和push
mac下的公鑰和密鑰在 ~/.ssh下
cd ~/.ssh
ls -a
//會(huì)看到如下文件(如果沒有請查看如何生成公鑰和密鑰)
id_rsa(密鑰) id_rsa.pub(公鑰) known_host
//生成公密鑰 終端
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/fdipzone/.ssh/id_rsa): 這里輸入要生成的文件名
Enter passphrase (empty for no passphrase): 這里輸入密碼
Enter same passphrase again: 這里重復(fù)輸入密碼
Your identification has been saved in /home/fdipzone/.ssh/id_rsa.
Your public key has been saved in /home/fdipzone/.ssh/id_rsa.pub.
The key fingerprint is:
f2:76:c3:6b:26:10:14:fc:43:e0:0c:4d:51:c9:a2:b0
The key's randomart image is:
+--[ RSA 2048]----+
| .+=*.. |
| . += + |
| o oo+ |
| E . . o |
| ..S. |
| .o . |
| .o + |
| ...oo |
| +. |
+-----------------+
//密鑰生成成功
在centos
cd /home/git/.ssh
//建立授權(quán)文件 authorized_keys,文件不存在則自己新建一個(gè)
//將本地機(jī)器上的 id_rsa.pub(公鑰)里面的復(fù)制一份粘貼到centos下/home/git/.ssh/authorized_keys
authorized_keys文件看起來是這樣的,上下兩個(gè)免密碼登錄用戶的公鑰 ,上下分開.
注意: .ssh 和 authorized_keys的擁有者必須是git,否則還是會(huì)有權(quán)限不足的問題
Paste_Image.png
8.同步代碼到自己的博客站點(diǎn)目錄
比如說我們的博客有一點(diǎn)點(diǎn)的優(yōu)化,但是push代碼之后無法立即查看效果,這個(gè)地方我們就需要自動(dòng)同步就派上用場了蟀给。自動(dòng)同步功能用到的是 git 的鉤子功能勇劣,
cd /home/testgit/sample.git
cd hooks
//這里我們創(chuàng)建post-receive文件
vi post-receive
//在該文件里輸入以下內(nèi)容./home/www就是我blog站點(diǎn)的目錄
#!/bin/bash
git --work-tree=/home/www checkout -f
//保存退出后,將該文件用戶及用戶組都設(shè)置成
gitchown git:git post-receive
//由于該文件其實(shí)就是一個(gè)shell文件九默,我們還應(yīng)該為其設(shè)置可執(zhí)行權(quán)限
chmod +x post-receive
此時(shí)clone自己的blog站點(diǎn),修改一下網(wǎng)站的名稱,push道git服務(wù)器,刷新網(wǎng)站首頁,是不是發(fā)現(xiàn)自己blog的名稱變了!
9.最后再記錄一下,配置ssh 免密碼登錄(so easy)
復(fù)制自己主機(jī)下的公鑰內(nèi)容
在自己的vps下
vi /root/.ssh/ authorized_keys
//復(fù)制密鑰內(nèi)容進(jìn)去,好了,現(xiàn)在ssh也可以免密碼登錄了