Linux上的 git 服务器

我是真滴无聊,废话不多说。。

一、 创建一个用户git并设置密码 , 这个账户是用来管理git的.(这里就不创建新组了)

$ adduser  git     # useradd git
$ passwd   git

二、首先在服务器上找个地方创建一个git仓库, 注意,服务器上的是裸仓库, 没有工作区的那种。而且服务器最好以 “.git” 结尾。
比如 /srv/gitserver.git

$ sudo git init –bare gitserver.git 

这里直接更改该库的用户.
这里写图片描述

还有一点: 只为git用户的ssh连接启用git-shell (表示不给这个用户的进入界面的权限,只给访问权限,你登录该用户后无法进入系统。我是这样理解的,如果有误还请大家指正。)
这里写图片描述

三、开启RSA认证
进入/etc/ssh 目录,编辑sshd_config,打开以下三个配置的注释。
这里写图片描述

<1>开启RSA认证
<2>开启公钥方式认证
<3>默认认证目录

重启sshd服务:
这里写图片描述

四、SSH 传输
(1)先在服务器上
创建目录: /home/git/.ssh/authorized_keys(在git用户的目录下,创建之前指定的默认目录)
同时设置权限, 防止后面编辑出问题.
这里写图片描述
(2)导入客户端公钥
生成公钥步骤:
1. 生成sshkey
这里写图片描述
2.查看公钥
这里写图片描述
3.将客户端公钥导入服务器

$ ssh git@server 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

这里写图片描述
4.测试
这里写图片描述
表示成功.然后可以添加点文件提交试试:
这里写图片描述

遇到的问题及处理办法:
1.编辑 ~/.ssh/authorized_keys 时无法保存退出, 提示 readonly(加 ! 强制退出 ):
是权限问题, 需要设置 .ssh 文件的权限为700, authorized_keys文件为600.
这里写图片描述
2.推送不成功.是权限问题:
这里写图片描述

解决
(1)查看权限:
这里写图片描述
(2)发现都是root的, git用户权限不够, 无法访问,修改owner为git用户:
这里写图片描述

附带一些vim的基本命令

vim:
i:  进入插入模式
ESC:  退出插入模式
:wq   保存修改并退出
:q!     强制退出, 放弃修改

有问题与见解欢迎提出来共同讨论。

end。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值