CVSClient/Server連線設定(轉)

post0發表於2007-08-09
CVSClient/Server連線設定(轉)[@more@]

  關於CVS,以前已經寫過一篇了。這是《開源世界》2004年3期上的文章,從作者的名字看,有一個應是我的同學。:)

一、 Pserver方式

1、 設定伺服器

0) 建立使用CVS的使用者或組

#su -

#groupadd linux

#useradd –g linux sun

#useradd –g linux zhang

1) 建立CVS原始碼庫目錄

#cd /usr/local

#mkdir cvsroot

#chmod 774 cvsroot

#chown sun:linux

2) 檢查/etc/services檔案,以確保有以下兩條:

cvspserver 2401/tcp

cvspserver 2401/udp

3) 檢查/etc/xinetd.d/目錄,以確保cvspserver檔案存在,其內容如下:

service cvspserver

{

disable=no

socket_type=stream

wait=no

user=root

server=/usr/bin/cvs

server_args=-f –allow-root /usr/local/cvsroot pserver

log_on_success+= USERID

log_on_failure+=USERID

}

4) 透過重啟xinetd來啟動cvs伺服器

#/etc/rc.d/init.d/xinetd restart

5) 檢查防火牆,使其放開2401埠

6) 並用下行命令檢查2401埠是否已被正確繫結

#netstat –an|grep 2401

7) 設定環境變數CVSROOT

#CVSROOT=/usr/local/cvsroot; export CVSROOT

可將此放入/etc/profile檔案中,以在系統啟動時自動設定此變數

8) 初始化CVS

#cvs init

此時,$CVSROOT目錄下會出現名為CVSROOT的目錄

2、 客戶端設定

#cvs –d “:pserver:sun@192.168.0.252:/usr/local/cvsroot” login

#[輸入密碼]

#cvs import //第一次使用時

#cvs checkout

#cvs logout

3、 高階設定

1) 將CVS帳號和系統帳號分開使用

編輯/usr/local/cvsroot/CVSROOT/passwd檔案(此檔案安裝時並不存在)

每行格式如下:CVS帳號:密碼:系統帳號

例子:cvsuser:xcgaer5321dsa:sun

cvsuser登入cvs後,會影射到系統使用者sun.

2) 編輯/usr/local/cvsroot/CVSROOT/readers

每行一個賬號,只讀許可權

3) 編輯/usr/local/cvsroot/CVSROOT/writers

每行一個賬號,讀寫許可權

二、 SSH方式

1、 安裝OpenSSH

1) 檢查OpenSSH是否安裝

#rpm –qa |grep ssh

2) 檢查sshd是否執行

#ps –aef|grep ssh

3) 啟動sshd

#/etc/rc.d/init.d/sshd start

2、 基於傳統口令認證

#ssh –l [在遠端伺服器上的帳號] [遠端伺服器的主機名或ip地址]

#[yes]

#[輸入密碼]

3、 基於金鑰認證

1) 配置遠端伺服器

編輯/etc/shh/sshd_config檔案

將PasswordAuthentication yes改為PasswordAuthentication no

2) 配置客戶端

3) 在客戶端生成金鑰

#cd ~

#ssh-keygen –t rsa (dsa)

#~/.ssh/id_rsa.pubid檔案即是公鑰

4) 釋出公鑰

將上步生成的id_rsa.pubid檔案複製到遠端伺服器的sun使用者目錄下

$cd .ssh

$cat ../id_rsa.pubid >> authorized_keys

5) 訪問CVS原始碼庫

客戶端設定如下就可以訪問CVS了

$export CVS_RSH=ssh

$export CVSROOT=:ext:sun@192.168.0.252:/usr/local/cvsroot

三、 SSH通道下的pserver方式

1、 伺服器端

伺服器按pserver方式設定,並改動/etc/xinetd.d/cvspserver檔案如下。

service cvspserver

{

flags=REUSE

socket_type=stream

wait=no

user=root

server=/usr/bin/cvs

server_args=-f –allow-root=/usr/local/cvsroot pserver

passénv=

log_on_failure+=USERID

only_from=127.0.0.1

bin=127.0.0.1

}

改完之後重啟xinetd.

2、 客戶端

1)客戶端需要透過任一個遠端伺服器的使用者,來建立ssh通道

$cd ~

$ssh-keygen –d

$將.ssh/id_rsa.pubid檔案內容追加到遠端使用者如zhang的~/.ssh/authorized_keys後。

$ssh –v –a –e none –N –o ‘KeepAlive=yes’ –o ‘BatchMode=yes’ –L 2401:localhost:2401 zhang@192.168.0.252

此時該視窗進入阻塞狀態

2)在另一個視窗中,

$export CVSROOT=:pserver:sun@192.168.0.252:/usr/local/cvsroot

其中sun是CVS用

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-939265/,如需轉載,請註明出處,否則將追究法律責任。

相關文章