git服务器端:环境是Centos 7.5,Git是 1.8.3.1(端口默认为9418)

git客户端:windows7,Git

1.验证系统是否有git,没有则安装

git --version验证,没有则yum -y install git

用rpm -qa | grep git可查看git安装的软件包

2.验证是否有git用户,没有则添加

id git验证,没有则useradd git和添加密码passwd git,输2次git即可

3.创建git服务端版本仓库

这里我选用目录为/var/data/git/learngit.git

A:创建目录:mkdir -p /var/data/git/learngit.git

B:初始化库:git init --bare /var/data/git/learngit.git

C: Git 仓库的 owner 修改为 git用户:cd /var/data/git和 chown -R git:git learngit.git/

4.客户端下载远程仓库

windows系统上我选用目录/d/IdeaProjects/(d为D盘)为操作目录

启动客户端 Git Bash.exe,然后进入该目录执行远程clone操作,如下命令

git clone git@192.168.3.10:/var/data/git/learngit.git

第一次远程连接会提示如下内容,输入yes即可

The authenticity of host ‘192.168.3.10 (192.168.3.10)‘ can‘t be established.
ECDSA key fingerprint is SHA256:HEaAUZgd3tQkEuwzyVdpGowlI6YKeQDfTBS6vVkY6Zc.
Are you sure you want to continue connecting (yes/no)?

提示输入密码时输入服务器端的git的密码git即可

vi test.txt命令,输入内容,然后git add test.txt和git commit -m "add test.txt"是添加进本地仓库,执行git push -u origin master(-u是第一次远程添加加上,后续不用加了就,origin是默认的远程库名称,master是当前主分支,开始默认这一个,可自行添加)即可推送到远程仓库中 。

Git还可以把本地的公钥添加到Git服务器,就可以免去每次远程操作都输入密码了

5.生成公私钥,添加到服务器

以下是客户端创建ssh私钥和拷贝的过程,如果您有私钥越过创建私钥的过程。

第一步:创建客户端的ssh私钥和公钥

检查是否已经拥有ssh公钥和私钥:进入用户的主目录。

用户主目录:
Windows系统:C:\Users\用户名(我用的是这个) Linux系统:/home/用户名 Mac系统:/Users/用户名

然后查看是否有.ssh文件夹,此文件夹下是否有如下几个文件

centos文件形式安装git centos安装git服务器_Git远程仓库

如果没有,那么用ssh-keygen创建ssh的私钥。

创建公私钥 ssh-keygen -t rsa -C "youremail@example.com"

-t rsa表示密钥类型是rsa,-C选项用于添加comment,可以设置成自己的Email地址

提示passphrase时不需要设置,三次回车就行。

第二部:公钥添加到服务器中

A:首先在服务中做些设置,vi /etc/ssh/sshd_config文件做如下修改

开启RSA认证,将前面的#去掉,并确保如下配置:

RSAAuthentication yes #这个没配置也可以,不行的话你记加上

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

修改保存完后重启服务service sshd restart(如果不行可执行systemctl restart sshd)

B:然后cd /home/git目录下,创建.ssh文件夹mkdir .ssh,再创建authorized_keys文件(与上面对应)touch authorized_keys

C:接下来windows系统中进入客户端 Git Bash.exe,把刚才创建的公钥id_rsa.pub远程复制到/home/git/.ssh/目录下

命令:scp /c/Users/win7/.ssh/id_rsa.pub root@192.168.3.10:/home/git/.ssh/

输入密码行了

D:最后回到服务端进入/home/git/.ssh/目录下

执行:cat id_rsa.pub >> authorized_keys就会复制成功。(其实手动复制也可以,但是不推荐,容易出错)

现在再在客户端Git Bash.exe做克隆推送等操作就不用密码了

6.禁用git用户的shell登录

出于安全考虑,第2步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

1

git:x:1001:1001:,,,:/home/git:/bin/bash

最后一个冒号后改为:

1

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

 

另外想详细学习Git命令可以去廖雪峰网站学习很详细

参考http://www.mamicode.com/info-detail-1833427.html