0. Environment:

Server machine: CentOS 6.3 x86

Client machine: Windows 10 Pro x86_64

1. Install ssh server

  1. [server machine shell]
    #yum install openssh openssh-server
    #chkconfig sshd on
  2. #/etc/init.d/sshd start

2. Create user git

  1. [server machine shell]
  2. #useradd git
  3. #passwd git

3. Create an empty repository

  1. [server machine shell]
  2. #cd /home/git
  3. #git init --bare sample.git
  4. #chown -R git:git sample.git

4. Conifigure ssh client in client machine

Download Git for Windows from https://git-for-windows.github.io/

Direct link(for 64bit system): https://github.com/git-for-windows/git/releases/download/v2.6.1.windows.1/Git-2.6.1-64-bit.exe

Install it to default location(C:\Program Files\Git), add C:\Program Files\Git\usr\bin to system environment PATH

Adding C:\Program Files\Git\usr\bin to PATH to enable command ssh and ssh-keygen in cmd.exe

Replace the  email address with yours to generate public & private ssh keys

  1. [client machine cmd]
  2. >ssh-keygen -t rsa -C "my_email@hotmail.com"

Press Enter three times to accept default setting, sample output

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/<your account name>/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/<your account name>/.ssh/id_rsa.
Your public key has been saved in /c/Users/<your account name>/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:+GR+6jWy7FtN3hFBszUCq08nk3fzlIBPzI0AbTkwOo4 my_email@hotmail.com
The key's randomart image is:
+---[RSA 2048]----+
|         ++ooo+..|
|        . .=* +=.|
|       o  .o.*o. |
|      o.. . + ...|
|     E..S. =.+.+.|
|       =  o+=..oo|
|        + =.o . .|
|       . B .     |
|       oB.       |
+----[SHA256]-----+

5. Transfer client machine's public key to server machine to enable login without password

  1. [client machine cmd]
  2. >ssh git@<server address>
  3.  
  4. $midkr .ssh
  5. $chmod .ssh
  6. $cd .ssh
  7. $touch authorized_keys
    $chmod 600 authorized_keys

Sample output

The authenticity of host '<server address> (<server address>)' can't be established.
RSA key fingerprint is SHA256:hsFlk18MlWP3wtNVGKcBrZijZMvCjsdlhJg/SPAn9Z0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '<server address>' (RSA) to the list of known hosts.
git@<server address>'s password:
Last login: Sun Oct 18 07:58:35 2015 from <client ip>
[git@localhost ~]$ mkdir .ssh
[git@localhost ~]$ chmod 700 .ssh
[git@localhost ~]$ cd .ssh
[git@localhost .ssh]$ touch authorized_keys
[git@localhost .ssh]$ chmod 600 authorized_keys

Append client's public key to server's authorized_keys file by copy-and-paste

  1. [client machine cmd -> connected to server via ssh]
  2. $vi ~/.ssh/authorized_keys

client machine public key location: %USERPROFILE%\.ssh\id_rsa.pub

server machine authorized_keys file location: /home/git/.ssh/authorized_keys

Sample authorized_keys file

[git@localhost ~]$ vi .ssh/authorized_keys

aaarticlea/png;base64,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" alt="" />

Logout from server and connect again to test, if ssh doesn't prompt for password, your configuration for ssh is correct.

6. Clone remote repository

  1. [client machine cmd]
  2. >git clone git@<server address>:sample.git

7. Test

Create a README.md file and push to server repository

  1. [client machine cmd]
  2. >touch README.md
  3. >notepad README.md #input some content into README.md, then save
  4. >git add README.md
  5. >git commit -m "Intial commit for sample project"
  6. >git push origin master

8 Done. if you want to submit code in another machine, you need to:

  a. Append the public key of the new machine to server's authorized_keys file

  b. Clone repository to new machine

  c. Modify the files in new machine local repository, and push to server(remote repository)


If you don't want the user git login into server via shell, you can modify the type of shell for this user

  1. [server machine shell]
  2. #vi /etc/passwd

Locate to the end of file, change  git:**********/bin/bash to git:**********/usr/bin/git-shell

After that, user still can use name git to push their code to server, but login via ssh is denied

C:\Users\<account name>>ssh git@<server address>
Last login: Sun Oct 18 10:42:30 2015 from <client ip>
fatal: What do you think I am? A shell?
Connection to 192.168.1.109 closed.

C:\Users\<account name>>

Setup Git Server in CentOS 6.3的更多相关文章

  1. setup FTP server on CentOS 7

    Setup FTP Server on CentOS 7 Install vsftpd vsftpd (Very Secure File Transport Protocol Daemon) is a ...

  2. Setup FTP Server On CentOS, RHEL, Scientific Linux 6.5/6.4/6.3

    setsebool allow_ftpd_full_access onsetsebool -P ftp_home_dir on vsftpd (Very Secure File Transport P ...

  3. 搭建Git Server - Centos+Gitosis

    参考并部分转载自:http://www.pfeng.org/archives/757 1. 安装依赖 yum -y install curl-devel expat-devel gettext-dev ...

  4. Setup VSFTPD Server with Virtual Users On CentOS, RHEL, Scientific Linux 6.5/6.4/6.3

    We have already shown you How to Setup VSFTPD Server on CentOS 6.5/6.4 in our previous article. In t ...

  5. Setup a private http/nginx based GIT server

    原文:http://aaba.me/blog/2014/03/setup-a-private-http-nginx-based-git-server.html https://doomzhou.git ...

  6. centos git server 的搭建

    安装环境  centos7 说明:centos  yum 库里面的git  好像是不区分 客户端和服务器端, 安装 git 以后 就可以创建  仓库,也可以检出 别的 git 仓库的  代码了.所以不 ...

  7. Installing MySQL Server on CentOS

    MySQL is an open-source relational database. For those unfamiliar with these terms, a database is wh ...

  8. Ubuntu server 搭建Git server

    Ubuntu server 搭建Git server,git相比svn,最主要就是分布式了,每个客户端用户的本地都是一个版本管理控制器. Ubuntu server 版本为12.04 搭建步骤如下: ...

  9. IP Failover Setup using Keepalived on CentOS/Redhat 6

    source url:http://tecadmin.net/ip-failover-setup-using-keepalived-on-centos-redhat-6/ Keepalived is ...

随机推荐

  1. 【老鸟学算法】包含 min函数的栈设计——java实现

    要求: 1. 定义栈的数据结构,要求添加一个 min函数,能够得到栈的最小元素. 2. 要求函数 min.push 以及 pop 的时间复杂度都是 O(1). 这是考验“栈”数据结构设计.众所周知,栈 ...

  2. android apk反编译

    ★反编译所需工具 1.AXMLPrinter.jar 2.d2j-dex2jar.bat 3.查看Jar包的GUI工具 ★功能实现 ◇解压缩 apk文件其实就是一个MIME为zip的压缩包,可以用wi ...

  3. java面向对象下:Java数据库编程

    19.Java数据库编程: JDBC概述:        JDBC(Java Database Connection)是java中提供的一套数据库编程API,它定义了一套用来访问数据库的标准Java类 ...

  4. mybatis 的简单使用

    须要用到的包:(这里仅仅是当中一个版本号.其它的百度) mysql-connector-java-5.1.6-bin mybatis-3.2.2 先看项目文件夹: 配置文件mybatisconfig. ...

  5. Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性加入图标

    注:(图中每个条目和图标都是由代码动态生成) 代码动态布局,并须要为每个条目设置图标,此时用到了 android:drawableLeft="@drawable/icon"  父x ...

  6. Maven的生命周期

    每次读.每次忘,Mark一下以后忘记就不翻书了! Maven有三套相互独立的生命周期,各自是:clean.default.site. clean主要是清理项目. default是Maven最核心的的构 ...

  7. iotop 分析系统那些进程占用io资源

    iotop -b -o  -t  -qqq >> /tmp/iotop.log 1.直接yum安装,rh6的光盘里有包. yum install iotop   2.命令参数介绍   -o ...

  8. 小猪的Android入门之路 day 1

    小猪的Android入门之路 Day 1 Android相关背景与开发环境的搭建 ------转载请注明出处:coder-pig 本节引言: 随着社会经济的发展,移动互联网的越来越热,手机APP开发显 ...

  9. C语言实现通讯录

    <span style="font-size:18px;">#include<stdio.h> #include<string.h> #incl ...

  10. ZOJ 3794 Greedy Driver

    两次SPFA 第一关找:从1没有出发点到另一个点的多少是留给油箱 把边反过来再找一遍:重每一个点到终点最少须要多少油 Greedy Driver Time Limit: 2 Seconds       ...