git服务器搭建

个人git服务器搭建

租了个云服务器,把自己之前写的东西放到云上用git管理,所以搭了个git服务器


1. 创建git用户

useradd git
passwd git

2. 建立ssh访问控制文件

这个文件默认不存在的,需要自己手动添加,路径为/home/git/.ssh/authorized_keys(权限644);文件的默认位置是在ssh服务器配置中指定的(/etc/ssh/sshd_config),文件保存的是需要访问git服务器的客户端ssh key值。
通过命令ssh-keygen -t rsa即可生成.ssh目录及文件id_rsaid_rsa.pub,将客户端id_rsa.pub文件中的内容拷贝到authorized_keys文件中即可。

3. 新建一个git库

目录选择 /home/git/gitSrv, 在目录中初始化一个空库:
git init --bare sample.git --bare表明只用版本记录文件,没有工作区,没有实际保存的可读源文件。(裸仓库)
裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,服务器上的Git仓库通常都以.git结尾。然后将这个文件的归属设置为git用户(如果已经是git用户的就不再操作了).
chown -R git:git sampl.git

4. 将git用户的登录默认shell改成git-shell

使用管理员权限编辑/etc/passwd,将
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
(git-shell是安装git时产生的,需要指定对应git-shell的路径,用户可以正常通过ssh使用git,但无法登录shell)


备注:

  1. 生成ssh密钥: ssh-keygen -t rsa 建议使用默认的文件路径和无密码(直接两次回车)
  2. 生成的密钥传到git服务器上,可以使用scp命令
scp localFile   remoteUserName@remoteIp:remoteDIrPath/remoteFileName 传递某个文件到远端
scp remoteUser@remoteIp:remotePath  localPath  从远端下载某个文件到本地
scp localDir -r   remoteUserName@remoteIp:remoteDIrPath  传递整个目录到远端
  1. ssh服务重启命令:
    centos7下 systemctl restart sshd.service
  2. cat 向某个文件末尾追加信息并且主动换行。添加多个用户的rsa key值得时候可以使用 cat a.txt >> b.txt 向b后添加a的内容
  3. 当配置完后使用ssh无法连接服务器,检查/etc/ssh/sshd_config文件下的如下配置项
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication yes
  1. git status中文乱序解决: git config --global core.quotepath false

  2. 如果团队过大,每个人 的权限都要放到authorized_keys中就有点麻烦了,这个时候使用gitolite来管理每个人的ssh公钥,
    并可以指定一些列的访问权限。
    gitolite


参考:
1.廖雪峰git教程
2.https://www.cnblogs.com/zhoug2020/p/5789041.html
3.https://blog.csdn.net/u010597189/article/details/81284642

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值