一. 服務(wù)器安裝和配置
1) 安裝ssh server和subversion
yum install -y openssh-server subversion
2) 建立svn用戶习霹,此用戶為ssh登錄帳號感憾,再建立用戶主目錄并設(shè)置權(quán)限
useradd svn
cd /home/svn
3) 建立 subversion repository
mkdir /var/svn-repos
svnadmin create /var/svn-repos/topcity
chown -R svn:svn /var/svn-repos/topcity
4) 為svnuser建立SSH公鑰和私鑰洒放,svnuser就是以后用來操作的svn用戶,注意它并不是linux系統(tǒng)用戶
ssh-keygen -t rsa -b 1024 -f svnuser.key
這里可以輸密碼涂滴,也可以不輸密碼,如果是希望代碼提交后,自動更新到運行環(huán)境的話劲藐,光用key方便點畦贸。否則建議根據(jù)提示輸入密碼陨闹,此時在當(dāng)前目錄下會生成二個文件,svnuser.key私鑰和svnuser.key.pub公鑰
mkdir /home/svn/.ssh
cat svnuser.key.pub >> /home/svn/.ssh/authorized_keys
chown -R svn:svn /home/svn/.ssh
5) 編輯 authorized_keys 文件薄坏,在相應(yīng)公鑰內(nèi)容的開頭處加入:
vi /home/svn/.ssh/authorized_keys
command="/usr/bin/svnserve -t -r /var/svn-repos/ --tunnel-user=svnuser",no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding
注意上述內(nèi)容和原來公鑰的內(nèi)容應(yīng)該在同一行中
6) 修改repository配置趋厉,并啟用authz權(quán)限控制
vi /var/svn-repos/topcity/conf/svnserve.conf
在general小節(jié)中,加入三行內(nèi)容
anon-access = none
auth-access = write
authz-db = /var/svn-repos/topcity/conf/authz
配置authz文件
vi /var/svn-repos/topcity/conf/authz
增加二行內(nèi)容
[topcity:/]
svnuser = rw
7) 導(dǎo)入項目到svn:
svn import web svn+ssh://192.168.1.10/topcity -m "initial import"
8) 在svn服務(wù)器上配置自動更新(有需要的話):
cd /var/svn-repos/topcity/hooks
cp post-commit.tmpl post-commit
chown svn:svn post-commit
chmod a+x post-commit
vi post-commit
把其它注釋掉胶坠,在最后加上:
/var/svn-repos/topcity/hooks/svnsshup.exp
服務(wù)器配置OK了君账,下面看看客戶端應(yīng)該怎么使用。
二.windows客戶端配置
在windows環(huán)境下沈善,svn+ssh方式需要用到三個軟件:puttygen.exe,putty.exe,TortoiseSVN乡数。
1. ubuntu下生成自己的公鑰和私鑰
ssh-keygen
生成之后,將公鑰發(fā)至服務(wù)器闻牡,私鑰保存
--------Ubuntu下--------
1. 安裝svn
sudo apt-get install subversion
2. 進(jìn)入ssh配置目錄
cd ~
cd .ssh净赴,沒有就mkdir .ssh再進(jìn)入
3. 復(fù)制自己的私鑰過來
cp ~/download/mykey id_rsa
4. 進(jìn)入自己的svn目錄
cd ~/platform
ssh+svn update ...
--------Windows下--------
1. 下載putty及相關(guān)
http://the.earth.li/~sgtatham/putty/latest/x86/putty.zip
解壓縮
2. 啟動其中的puttygen.exe
load先前生成的私鑰,保存成putty對應(yīng)的私鑰格式
3. 啟動putty.exe
新建一個session罩润,輸入名字(例如platsession)玖翅,在host name填對應(yīng)的svn服務(wù)器地址,端口默認(rèn)22,在connection--ssh--auth里面烧栋,選擇自己剛生成的putty對應(yīng)格式的私鑰
4. 安裝TortoiseSVN
下載之:http://tortoisesvn.net/downloads
然后安裝
5. 建一個自己的svn目錄写妥,并鏈接putty
例如platform,右鍵审姓,在TortoiseSVN的setting里面選擇network珍特,在ssh client處填入D:\putty\PLINK.EXE -load
6. svn update
右鍵platform,選擇svn checkout魔吐,輸入地址扎筒,例如ssh+svn:\\platsession\platform
ok即可
現(xiàn)在platform上面將有svn標(biāo)記,以后就可以直接svn update和commit了
1) 首先把上面生成的私key svnuser.key 復(fù)制到windows上酬姆,再用puttygen.exe轉(zhuǎn)成putty用的key文件嗜桌。
點Load選中svnuser.key,然后再點save private key,保存一個svnuser.ppk的文件辞色。
2)在putty內(nèi)配置:
Connection -> SSH -> Auth 選中剛剛轉(zhuǎn)好的ppk文件
Connection -> SSH -> Data 的Auto-login username輸入svn骨宠。
把Session內(nèi)輸入hostname和session name保存,我這邊輸?shù)亩际?92.168.1.10相满。
然后打開這個Session,如果顯示下面這樣的提示层亿,說明就成功了。
Authenticating with public key "imported-openssh-key"
Server refused to allocate pty
( success ( 1 2 ( ANONYMOUS EXTERNAL ) ( edit-pipeline svndiff1 absent-entries ) ) )
3) TortoiseSVN內(nèi)配置:
TortoiseSVN -> Settings -> Network
選擇TortoiseSVN安裝目錄下面的TortoisePlink.exe文件
4) checkout
先打開putty連上服務(wù)器
再用TortoiseSVN檢出:url:svn+ssh://svn@192.168.1.10/topcity
注意url內(nèi)的192.168.1.10并不是指ip地址立美,而是在putty內(nèi)配置的session名匿又。
能正常checkout出來就說明ok了。
三.linux客戶端配置
1) 在用戶目錄生成.subversion:
svn co
2) 復(fù)制服務(wù)器端生成的私key過來到這目錄
cd .subversion
cp ../svnuser.key .
3) 配置config文件
vi config
在[tunnels]內(nèi)增加一行:
ssh = /usr/bin/ssh -l svn -i /home/top_city/.subversion/svnuser.key
4)檢出:
svn checkout svn+ssh://192.168.1.10/topcity
更新命令是:
cd topcity
svn up
分享海量視頻