0. Environment:

Server machine: CentOS 6.3 x86

Client machine: Windows 10 Pro x86_64

1. Install ssh server

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

2. Create user git

[server machine shell]
#useradd git
#passwd git

3. Create an empty repository

[server machine shell]
#cd /home/git
#git init --bare sample.git
#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

[client machine cmd]
>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

[client machine cmd]
>ssh git@<server address> $midkr .ssh
$chmod .ssh
$cd .ssh
$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

[client machine cmd -> connected to server via ssh]
$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

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

7. Test

Create a README.md file and push to server repository

[client machine cmd]
>touch README.md
>notepad README.md #input some content into README.md, then save
>git add README.md
>git commit -m "Intial commit for sample project"
>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

[server machine shell]
#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. Android之后台服务判断本应用Activity是否处于栈顶

    在Android开发中,我们经常想知道是否自己的服务处于后台运行中,因为在后台运行的服务器优先级会降低,也就极有可能会被系统给回收掉,有什么好办法呢?Google推荐我们将服务运行到前台,如何知道服务 ...

  2. 邮件应用Acompli和日历应用Sunrise(传微软曾考虑以80亿美元收购企业通讯公司Slack)

    http://tech.163.com/16/0305/10/BHCU8EHO000915BD.html http://www.cnbeta.com/articles/480835.htm

  3. uva 11475 - Extend to Palindrome(KMP)

    option=com_onlinejudge&Itemid=8&category=506&page=show_problem&problem=2470" ta ...

  4. 使用Delphi声明C++带函数的结构体实战 good

    在小组开发中,应用程序部分采用Delphi7,一些组件使用C++做.在今天将一个动态库的C++接口声明头文件转换为D7的Unit单元时,一切都很顺利,直到遇到下面这样一个另类的东西: typedef ...

  5. 14.5.1 Resizing the InnoDB System Tablespace

    14.5.1 Resizing the InnoDB System Tablespace 本节描述如何增加或者减少InnoDB 系统表空间的大小 增加InnoDB 系统表空间的大小 最简单的方式增加I ...

  6. LeetCode——Populating Next Right Pointers in Each Node II

    Follow up for problem "Populating Next Right Pointers in Each Node". What if the given tre ...

  7. Pyocr 0.2 发布,Python 的 OCR 库 - 开源中国社区

    Pyocr 0.2 发布,Python 的 OCR 库 - 开源中国社区 Pyocr 0.2 发布,Python 的 OCR 库

  8. HTML5初步——新的表单元素和属性

    HTML5初步--新的表单元素和属性 HTML5初步--新的表单元素和属性 <!DOCTYPE html> <html> <head> <meta chars ...

  9. 拿到阿里,网易游戏,腾讯,smartx的offer的过程 (转)

    前言 从今年的3月14日阿里的电话面试开始,到现在4月16日在西安悦豪酒店进行的腾讯HR面到现在一个多月了,中间先后收到了阿里,网易游戏,腾讯和smartx的offer,今天早晨刚刚接到了腾讯HR的电 ...

  10. python+ueditor+七牛云存储整合

    开发环境:python pyramid. 參考网址:http://developer.qiniu.com/docs/v6/sdk/python-sdk.html,http://my.oschina.n ...