linux搭建git服务器

时间:2024-03-03 18:54:56

1,Linux安装git见上篇:https://www.cnblogs.com/mengzhilva/p/10675289.html

2,建立git用户,(可以建立多个用户实现测试服务器多人登录操作git的功能)

  groupadd git    建立git用户组

  useradd git -g git 建立git用户属于git

  passwd git  设置密码,需要英文加字母数字。

3,设置一个代码库

  mkdir /usr/gitdata

  cd /usr/gitdata

  mkdir -p myproject.git     建立一个叫myproject的代码库

  git init --bare  /usr/gitdata/myproject.git    初始化

  chown -R git:git myproject.git/ 设置权限给git用户

4,测试连接,这个时候已经可以在当前服务器上连接git,但会报错

  在服务器上需要克隆代码的地方,新建一个文件夹,然后执行

   git clone git@121.40.179.200: /usr/gitdata/myproject.git

  出现此错误是因为

  我们服务端安装的git不在/usr/bin目录下

  需要将git安装目录bin下面的git-upload-pack 和git-receive-pack 文件复制到/usr/bin目录下。我本机上的git安装在/usr/local/git目录下

  cd /usr/local/git

  cp git-upload-pack /usr/bin
  cp git-receive-pack /usr/bin

  复制完成,再执行克隆

  git clone git@121.40.179.200: /usr/gitdata/myproject.git

  克隆成功后,可以用

  git status查看所在分支。

5,提交文件

  vim aa.php  新建一个文件

  git add ./  将文件添加的git

  git commit -am 添加测试   提交文件

  第一次提交的时候,会提示输入邮箱和用户名,随便输入就行

  git config --global user.email "test@163.com"
  git config --global user.name "test"

  git push origin master  将文件提交到主分支

  以上就是简单的git服务器,但是此时每次操作都需要输入密码,需要用密钥来解决。

6,添加秘钥

   修改/etc/ssh/sshd_config中将RSA认证打开

  

    sudo service sshd restart #重启sshd服务

  ,在Linux下生成ssh秘钥方法

  第一步,先生成秘钥

   ssh-keygen -t rsa -C "test@163.com"   这里的邮箱没有设置的话需要先设置,见上面设置邮箱git config --global user.email "test@163.com"

  生成第路径是/root/.ssh/id_rsa.pub

  

 

  第二步,把秘钥移动到git的目录下。

  由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys
  在 /home/git/ 下创建目录 .ssh

  cd /home/git/   

  mkdir .ssh  生成ssh文件夹

  touch ./.ssh/authorized_keys    

  mv  /root/.ssh/id_rsa.pub ./.ssh   把秘钥移动到需要克隆的目录下。

  cd .ssh

  cat id_rsa.pub  >> authorized_keys  将公钥放到git的authorized_keys  中

  chown 700 ./.ssh/authorized_keys 修改权限

  chown 700 .ssh   修改权限

  chown -R git:git .ssh   修改ssh的用户

  第三步,再次回到代码目录执行克隆

  git clone git@121.40.179.200:/mnt/www/sberwm/sampla.git

  这次就不用再输入密码了