git服务器搭建与客户端配置说明

来源:互联网 发布:淘宝卖家骗局大全 编辑:程序博客网 时间:2024/05/17 02:03


一、GIT SERVER端的配置


1.安装git工具
sudo apt-get install git-core


2.安装open-ssh服务器和客户端
sudo apt-get install openssh-server openssh-client


说明:SERVER端也需要安装openssh-client (可以尝试不安装openssh-clienet,待验证);


3.创建git用户,并制定目录和所在群组
sudo useradd -m git


4.切换至git用户,然后创建git 代码库,以dtivy项目代码库为例
a>在git home目录下新建文件夹dtivy.git
su git
mkdir /home/git/dtivy.git


b>切换至git的home目录,初始化上述新建的dtivy.git仓库
cd /home/git
git init --bare --shared dtivy.git


5.在git用户下生成SERVER端自己的rsa pub key文件,
ssh-keygen
说明:生成好的id_rsa.pub文件存放在当前用的.ssh目录下,目前还不确定此步骤是否必须,待验证


6.搜集用户的ssh public key,添加至git授权文件中,以实现ssh自动登陆
sudo ssh-copy_id -i /home/xxx/id_rsa.pub 


说明:
A>上述命令的功能就是copy CLIENT端生成的id_rsa.pub内容到SERVER端的/home/git/.ssh/authorized_keys文件中
B>默认.ssh目录没有authorized_keys,在添加第一个账户后便生成此文件;
C>添加客户端的id_rsa.pub文件时,用户名不能存在重复的,否则会提示添加失败;
D>id_rsa.pub需要在CLIENT端提前生成生成方法见上述步骤5,下面会在CLIENT端中详细说明;
E>如果用户不想通过上述ssh-copy-id -i /xxx/id_rsa.pub的方式添加CLIENT的id_rsa.pub授权,也可手动打开authorized_keys和id_rsa.pub文件,把后者的内容copy至前者中;
F>当存在多个CLIENT时进行合作开发时,则需要把逐个CLIENT的id_rsa.pub文件添加至授权文件authorizd_keys中去;


二、GIT CLIENT的配置


1.安装git工具
sudo apt-get install git-core


2.客户端git工具的基本配置
A>设置用户名和邮箱
git config --global user.name <用户名> 
git config --global user.email <user's email>
比如: 
git config --global user.name wanghongtao
git config --global user.email wanghongtao@leadcoretech.com

B>配置颜色
git config --global color.status auto 
git config --global color.diff auto 
git config --global color.branch auto 
git config --global color.interactive auto

说明:
A>查看已有配置git config --list
B>当前用户的git配置文件位于/home/xxx/.gitconfig文件中

3. 客户端生成密钥:
ssh-keygen -t rsa
注意:生成密钥时,会有两个提示直接按回车键即可;

4. 客户端将生成的id_rsa.pub 传给git管理者。对应于Server端的第6点。
可以使用SCP命令直接copy至服务器;


5.客户端使用git clone代码
git clone git@172.21.52.168:/home/git/dtivy.git

6.客户端添加文件或者目录测试
git add -A
git commit -m "description"
git push origin master

说明:执行完上述步骤后完成git文件的添加,可以使用git log查看变更记录,另外可以用另一个客户端或者其他的目录重新clone代码,检查获取的最新代码是否包含了自己的修改;

7.客户端: 添加远程仓库:  git remote add remote_server_name git@172.21.52.168:/home/git/dtivy.git

三、ssh的受信用户的添加 
 为实现ssh自动登陆,需搜集用户的ssh public key ,放入到.ssh 目录下的authorized_keys文件末尾,此过程较为复杂,分为两大步骤:
1.配置sshd_config文件并重启sshd,
2.将用户上传的rsa pub key 添加到authorized_keys文件中。 
 
详细过程如下:
 
I. 配置sshd_config文件,并重启:
     1. su root; sshd_config位于/etc/ssh/ 文件夹下,需要使用root权限,同时如果出现 could not load host key: rsa_key dsa_key ecdsa_key,也是由于这个原因,因为这三个文件只有root用户拥有读权限。
     2. vim sshd_config 
     3. 取消AuthorizedKeysFile的注释,并修改为 AuthorizedKeysFile      /home/git/.ssh/authorized_keys 
     4.重启sshd : /usr/sbin/sshd
 
II. 上传rsa pub key, 并将其添加到authorized_keys文件中。

scp id_rsa.pub git@172.26.186.117:/home/git/        ; 远程拷贝
mv id_rsa.pub  rename.pub                                   ; 重命名以避免与。ssh文件夹中的已有文件重名。
mv rename.pub .ssh/                                            ; 移动到.ssh
cat rename.pub >> authorized_keys                      ; 将该用户 添加到受信任的ssh-rsa 列表中, 很多人将此authorized_keys误认为是文件夹,从而导致添加后,客户端登陆依然失败。
注意:如果用户的id_rsa.pub 已经加入到authorized_keys, 但 git clone git@172.26.186.117:/home/git/PmsAndroid.git 后出现如下的提示信息
Agent admitted failure to sign using the key.
git@172.26.186.117's password: 
则说明授权验证的ssh-agent 没有将密钥随着请求, 需要使用ssh-add 来添加, 若ssh-add添加失败,请先运行ssh-agent 。

四、关于git基本使用说明

git init --初始化项目,刚开始初始化项目的时候使用 
git clone --从服务器上克隆到本地,如果服务器上面已经有项目了,直接使用这个命令clone到本地进行使用。 
git status --查看版本信息 
git add  --添加本地文件 
git commit --提交更改 
git push --tags --将更改推送到服务器 
git amend 更正提交的信息
git pull
git diff
1 0
原创粉丝点击