svn+ssh方式svn服務器和客戶端的配置

一. 服務器安裝和配置

1) 安裝ssh server和subversion

yum install -y openssh-server subversion

2) 建立svn用戶,此用戶為ssh登錄帳號,再建立用戶主目錄并設置權限

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ù)提示輸入密碼,此時在當前目錄下會生成二個文件,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 文件,在相應公鑰內容的開頭處加入:

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

注意上述內容和原來公鑰的內容應該在同一行中

6) 修改repository配置,并啟用authz權限控制

vi /var/svn-repos/topcity/conf/svnserve.conf

在general小節(jié)中,加入三行內容

anon-access = none

auth-access = write

authz-db = /var/svn-repos/topcity/conf/authz

配置authz文件

vi /var/svn-repos/topcity/conf/authz

增加二行內容

[topcity:/]

svnuser = rw

7) 導入項目到svn:

svn import web svn+ssh://192.168.1.10/topcity -m "initial import"

8) 在svn服務器上配置自動更新(有需要的話):

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

服務器配置OK了,下面看看客戶端應該怎么使用。

二.windows客戶端配置

在windows環(huán)境下,svn+ssh方式需要用到三個軟件:puttygen.exe,putty.exe,TortoiseSVN。

1. ubuntu下生成自己的公鑰和私鑰

ssh-keygen

生成之后,將公鑰發(fā)至服務器,私鑰保存

--------Ubuntu下--------

1. 安裝svn

sudo apt-get install subversion

2. 進入ssh配置目錄

cd ~

cd .ssh,沒有就mkdir .ssh再進入

3. 復制自己的私鑰過來

cp ~/download/mykey id_rsa

4. 進入自己的svn目錄

cd ~/platform

ssh+svn update ...

--------Windows下--------

1. 下載putty及相關

http://the.earth.li/~sgtatham/putty/latest/x86/putty.zip

解壓縮

2. 啟動其中的puttygen.exe

load先前生成的私鑰,保存成putty對應的私鑰格式

3. 啟動putty.exe

新建一個session,輸入名字(例如platsession),在host name填對應的svn服務器地址,端口默認22,在connection--ssh--auth里面,選擇自己剛生成的putty對應格式的私鑰

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標記,以后就可以直接svn update和commit了

1) 首先把上面生成的私key svnuser.key 復制到windows上,再用puttygen.exe轉成putty用的key文件。

點Load選中svnuser.key,然后再點save private key,保存一個svnuser.ppk的文件。

2)在putty內配置:

Connection -> SSH -> Auth 選中剛剛轉好的ppk文件

Connection -> SSH -> Data 的Auto-login username輸入svn。

把Session內輸入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內配置:

TortoiseSVN -> Settings -> Network

選擇TortoiseSVN安裝目錄下面的TortoisePlink.exe文件

4) checkout

先打開putty連上服務器

再用TortoiseSVN檢出:url:svn+ssh://svn@192.168.1.10/topcity

注意url內的192.168.1.10并不是指ip地址,而是在putty內配置的session名。

能正常checkout出來就說明ok了。

三.linux客戶端配置

1) 在用戶目錄生成.subversion:

svn co

2) 復制服務器端生成的私key過來到這目錄

cd .subversion

cp ../svnuser.key .

3) 配置config文件

vi config

在[tunnels]內增加一行:

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


分享海量視頻

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 一、svn服務端和客戶端安裝: 1、安裝程序: 服務端程序:Setup-Subversion-1.8.17.msi...
    Android阿杜閱讀 2,685評論 0 0
  • 一. SVN簡介 Subversion(SVN)是一個開源的版本控制系統(tǒng),也就是說Subversion管理著隨時間...
    天宇_閱讀 595評論 0 0
  • 一、SVN1、什么是svnsvn:全稱Subversion,是代碼版本管理軟件,管理著隨時間改變的數(shù)據(jù)。這些數(shù)據(jù)放...
    peng_js閱讀 3,385評論 0 0
  • 學號-01:白立平 張姐,是我在京劇票房認識的,因為共同的愛好——京劇,我們成了好姐妹。今天,我來采訪她。 我:對...
    白立平閱讀 183評論 0 3
  • react 官方推薦使用 一種JSX語法,類似xmlreact.js 引入的時候放在react-dom.js的前面...
    哼_閱讀 3,779評論 0 1

友情鏈接更多精彩內容