GIT服务器的搭建|菜鸟实践
来源:互联网 发布:win安装ubuntu双系统 编辑:程序博客网 时间:2024/05/19 10:16
原材料:装有Ubuntu12.04系统的台式机一台,腾达/Tenda路由器一台(选他是因为便宜一点)
安装环境:校园网(按道理来说那个Ubuntu的台式机连上一个网线就行了,但是因为我们屋只有一个网线,所以我是将路由器当无线交换机使)
关于服务器IP地址:因为我是校园网,相当于我路由器(交换机)的上一级有一个交换机(学校的),然后他会根据电脑的信息分配一个IP地址给你,所以你只要将服务器自动连接上的IP地址信息记录下来,然后设置为静态连接就可以了。
一个更好的图文教程:http://www.myhack58.com/Article/sort099/sort0102/2015/62582.htm
对于Ubuntu的配置:
一、搭建GIT服务器
下面一段转自:廖雪峰的git教程 搭建Git服务器
假设你已经有sudo
权限的用户账号,下面,正式开始安装。
第一步,安装git
:
$ sudo apt-get install git
第二步,创建一个git
用户,用来运行git
服务:
$ sudo adduser git
第三步,创建证书登录:
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub
文件,把所有公钥导入到/home/git/.ssh/authorized_keys
文件里,一行一个。
本文作者补充:怎样在本地将sshkey添加到服务器(首先要开启服务器的ssh服务):
scp id_rsa.pub root@serverID:/home/git/.ssh/authorized_keys
若在使用 ssh-keygen 产生钥匙对时没有输入密码,则如上所示不需输入密码即可登录远程服务器
怎样在服务器上追加sshkey:
cat id_rsa.john.pub >> /home/git/.ssh/authorized_keys
本文作者补充:在这一步也许大家会找不到.ssh文件夹,这个不知道是不是没有首先开启ssh服务的原因(这个实验了一下,发现先装ssh好像也不行)(下文有怎么开启SSH服务的介绍),如果开启了也没有,按照下面去做(以git的身份,而非root):
mkdir /home/git/.sshchmod 700 /home/git/.sshtouch /home/git/.ssh/authorized_keyschmod 600 /home/git/.ssh/authorized_keyschown git /home/git/.ssh/chown git /home/git/.ssh/authorized_keys
其中如果权限不够的话可以使用root去做,教程:新装LINUX系统如何获得ROOT权限,图文教程
如果还是需要密码,则还是要(作者没有用到):
.ssh跟authorized_keys 都需要设置权限(需要再git用户下设置,非root)
另外etc/ssh/sshd_config里面要修改几个参数
StrictModes noRSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys(均需要去掉前面的#,使其生效)
第四步,初始化Git仓库:
先选定一个目录作为Git仓库,假定是/srv/sample.git
,在/srv
目录下输入命令:
$ sudo git init --bare sample.git
Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git
结尾。然后,把owner改为git
:
$ sudo chown -R git:git sample.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
用户可以正常通过ssh使用git,但无法登录shell,因为我们为git
用户指定的git-shell
每次一登录就自动退出。
第六步,克隆远程仓库:
现在,可以通过git clone
命令克隆远程仓库了,在各自的电脑上运行:
$ git clone git@server:/srv/sample.gitCloning into 'sample'...warning: You appear to have cloned an empty repository.
剩下的推送就简单了。(这个作者还是没有试验成功)
二、开启SSH服务
1.查看是否有sshd_config
cat /etc/ssh/sshd_config //查看是否有sshd_config文件2.如果没有进行安装
sudo apt-get install openssh-server //安装sshd-server,Ubuntu缺省安装了openssh-client,如果你的没有安装,用apt-get install 进行安装即可。
3.查看sshsever是否启动
ps -e |grep ssh 1207 ? 00:00:00 ssh-agent 21834 ? 00:00:00 sshd
sudo /etc/init.d/ssh start 启动sshserver4.ssh-server的配置文件位于 /etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222。然后用以下命令重启SSH服务:
sudo /etc/init.d/ssh restart5. 还可以用sudo netstart -tlp 命令来检测, 如果看到:
tcp6 0 0 [::]:ssh [::]:*
作者补充: 作者的网络环境是校园网,那么我只要服务器有一个确定的IP地址就可以了,这个可以通过先连上校园网,然后在网络连接中看详细信息就可以知道服务器的IP地址,然后就可以访问我的服务器了。这个配置可以在GUI界面中进行。有时间再补充
那么通过前面两个环节的配置,现在是可以在客户端上clone服务器上的东西了,但是我是到这里就卡着了,自己在客户端上push不上去
push问题的最终的解决办法:
首先在本地.git文件夹中:修改config文件(其中serverID是你服务器的IP地址)
remote "origin"]
url =root@serverID:/srv/sample.git
fetch = +refs/heads/*:refs/remotes/origin/*
如果现在可以push上去,那么就是你sample.git的权限问题
cd /srv
ls -al
如果看到下面的就说明是权限的问题了
drwxr-xr-x 8 root root 4096 4月 14 18:32 sample.git
修改方法:
sudo chown git -R sample.git
sudo chgrp git -R sample.git
现在修改config文件(其中serverID是你服务器的IP地址)
remote "origin"]
url =git@serverID:/srv/sample.git
fetch = +refs/heads/*:refs/remotes/origin/*
如果还是不可以,再查找其他的问题
最后附上创建好git服务器给小伙伴的通知:
怎样连上本体git服务器:
强调IP地址是你自己服务器的IP地址,我们这都用192.168.0.2代替
1 使用putty输入IP地址:192.168.0.2,选择协议为ssh协议-->连接
登录名:yourName
登录密码:yourPassword
如果可以登录,那么就说明服务器是正常的
2 怎样使用git服务器(前提是咱们会在本地操作了,不会请看廖雪峰的教程)
(1)让管理员(就是你自己啦)将本人的rsa_id.pub添加到/home/git/.ssh/authorized_keys中去
因为只有这样,咱们才能提交代码(和gitHub的原理一致)
(2)将git服务器中的存储目录clone下来(severDir具体项目,具体去添不确定)
clone git@192.168.0.2:/srv/serverDir
(3)对于步骤二可以尝试
clone git@192.168.0.2:/srv/sample.git
如果成功,添加这个地址为gitServer地址(这是自定义的)
git remote add gitServer git@192.168.0.2:/srv/sample.git
如果再次成功,尝试修改test.txt(这个是创建服务器时,测试的时候添加上去的)
git status
git add test.txt
git commit -m "my test"
git push -u gitServer master //(第一次需要这么做,以后直接 git push gitServer就行了)
如果成功了,那么我们就可以愉快的写代码了
3 咱们如果可以搜到server WIFI信号,那么咱们是可以连上校园网的,和插着网线一样!
所以小伙伴们,网线什么的,不打游戏就再也用不到了
enjoy everyone!!
- GIT服务器的搭建|菜鸟实践
- GIT服务器的搭建|菜鸟实践(实验室)
- git服务器的搭建
- git服务器的搭建
- git服务器的搭建
- git服务器的搭建
- git 服务器的搭建
- git服务器的搭建
- git服务器的搭建
- git服务器的搭建
- Git服务器的搭建
- Git服务器的搭建
- Git服务器的搭建
- Git服务器的搭建
- git服务器的搭建
- 菜鸟对git服务器创建的理解
- git web 服务器的搭建
- 搭建自己的Git服务器
- From C++ to Objective-C
- MySQL之——日期时间Extract函数介绍
- 1.2.5 Linux的内核版本
- java POI实现向Excel中插入图片
- mybatis configuration 一些标签配置问题
- GIT服务器的搭建|菜鸟实践
- Hadoop 学习笔记1
- 无法安装 installer integrity check has failed
- 【leetcode】237. Delete Node in a Linked List
- 【iOS开发】二维码生成 二维码读取 (带Logo的二维码)
- poj 3468 A Simple Problem with Integers LAZY线段树
- oracle性能优化之 高效SQL语句
- [python] yield example
- JVM(7)--java内置工具使用