Git服务器 - 配置
来源:互联网 发布:arm linux gnueabihf 编辑:程序博客网 时间:2024/05/07 14:34
配置服务器
服务端SSH访问
首先,创建一个操作系统用户git
,并建立.ssh
目录。
sudo adduser gitsu gitcd mkdir .ssh && chmod 700 .sshtouch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
接着需要为系统用户git
的authorized_keys
文件添加开发者SSH公钥。将开发者公钥加入到git用户的.ssh目录下的authorized_keys文件的末尾:
cat /tmp/id_rsa.xxx.pub >> ~/.ssh/authorized_keys
现在我们为开发者新建一个空仓库,可以借助带--bare
选项的git init
命令来做。该命令在初始化仓库时不会创建工作目录“
cd /opt/gitmkdir project.gitcd project.gitgit init --bare
Git守护进程
对于快速且无需授权的Git数据访问,可以通过建立基于”Git“协议的守护进程仓库。因为不包含授权服务,任何通过该协议管理的内容将在其网络上公开。
git daemon --reuseaddr --base-paht=/opt/git/ /opt/git/
选项--reuseaddr
允许服务器在无需等待旧连接超时的情况下重启,--base-path
选项允许用户在为完全指定路径的条件下克隆项目,结尾的路径告诉Git守护进程从何处寻找仓库来导入。如果有防火墙,需要开放端口9418的通信权限。
接下来需要告诉Git哪些仓库允许基于服务器的无授权访问。可以在每个仓库下创建一个名为git-daemon-export-ok
文件来实现。
cd /path/to/project.gittouch git-daemon-export-ok
该文件将允许Git提供无授权的项目访问服务。
Smart HTTP
设置Smart HTTP一般只需要在服务器上启动一个Git自带的名为git-http-backend的CGI脚本,该脚本将读取由git fetch
或git push
命令向HTTP UTL发送的请求路径和头部信息,来判断该客户端是否支持HTTP通信。如果CGI发现该客户端支持Smart模式,他将会以Smart模式进行通信,否则它将会回落到Dumb模式。
在完成以上的安装步骤后,我们可以用Apache作为CGI服务器。在Apache的配置文件中添加一些内容,让git-http-backend
作为Web服务器对/git
路径请求的处理器。
SetEnv GIT PROJECT ROOT /opt/gitSetEnv GIT HTTP EXPORT ALLScriptAlias /git/ /usr/lib/git-core/git-http-backend/
如果留空GIT_HTTP_EXPORT_ALL
这个环节变量,Git将只对无授权客户端提供带git=daemon-export-ok
文件的版本库,就像Git守护进程一样。
在Apache配置文件中添加如下内容,让Apache接受通过该路径的请求:
<Directory "/usr/lib/git-core*"> Options ExecCGI Indexes Order allow,deny Allow from all Require all granted</Directory>
最后如果想实现写操作授权验证,使用如下的未授权屏蔽配置即可:
<LocationMatch "^/git/.*/git-receive-pack$"> AuthType Basic AuthName "Git Access" AuthUserFile /opt/git/.htpasswd Require valid-user</LocationMatch>
这时需要创建一个包含所有合法用户密码的.htaccess
文件,一下时添加”schacon”用户到此文件的例子:
htdigest -c /opt/git/ .htpasswd "xxx" schacon
- git服务器的配置
- git windows服务器配置
- Git的服务器配置
- Redhat配置git 服务器
- git服务器配置
- 配置git服务器
- git 服务器配置
- git客户/服务器配置
- git配置两个服务器
- git服务器配置
- Git服务器 - 配置
- Git 服务器 配置
- 服务器配置git
- Git服务器配置
- windows git 服务器配置
- Linux git服务器搭建 配置IDEA git
- Mac 下配置 Git 服务器
- ubuntu上配置git服务器
- IT成长路<2013.3-2013.9>"而立"上篇
- 谈一谈我所理解的面试
- What is the difference between left join and left outer join?
- VideoView的使用
- Dijkstra算法--有向图的源点到其他顶点的最短路径(连接矩阵、邻接矩阵两种方式)
- Git服务器 - 配置
- Implement Stack using Queues
- xcode7.0-iOS9新特性之四:iOS 9开发之新增通知行为详解
- java.lang.NoSuchMethodError问题处理
- Linux系统函数open和close(02)---open函数的返回值
- 自学安卓复习基础_之一(关于安卓环境搭建)
- MySQL学习4_CentOS/Linux下的MySQL安装文件类型:rpm package,rpm bundle和Compressed TAR Archive有什么区别
- Android之Notification的多种用法
- 新浪微博数据库是如何设计的