centos 环境搭建git 服务器

首先yum安装git

yum install git 

查看git的版本

sudo git --version

 

 

服务器端创建一个git 用户,专门来处理git服务,并为git用户设置密码

查看是否有git的用户

id git

添加git用户

useradd git

为git用户分配密码

passwd git

  

 

创建git仓库

sudo mkdir -p /home/git/project.git

git初始化仓库

sudo git init --bare /home/git/project.git

修改权限

chown -R git:git project.git/

 

 

客户端克隆代码

sudo git clone git@your ip :/home/git/project.git/

当第一次连接到目标 Git 服务器时会得到一个提示:

The authenticity of host '192.168.56.101 (192.168.56.101)' can't be established.
RSA key fingerprint is SHA256:Ve6WV/SCA059EqoUOzbFoZdfmMh3B259nigfmvdadqQ.
Are you sure you want to continue connecting (yes/no)? 

选择yes:

Warning: Permanently added '192.168.56.101' (RSA) to the list of known hosts.

 

客户端创建ssh公钥和私钥

ssh-keygen -t rsa -C "931285354@qq.com"

The key fingerprint is:

SHA256:hNE8psTlENbSbKPCswDfSafqWubaz8v8vzYD+pAbqGY 943016731@qq.com

The key's randomart image is:

+---[RSA 2048]----+

|     .=O.        |

|.   ..==@        |

| o + =.*oo       |

|  o B o.         |

|   o +  S        |

|  .....          |

| .+ +. .         |

| E.+.+  +        |

|*oo.B+ooo+       |

+----[SHA256]-----+

 

在/etc/ssh 打开sshd_config 并取消以下三行注释

RSAAuthentication yes

PubkeyAuthentication yes

 

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2

# but this is overridden so installations will only check .ssh/authorized_keys

AuthorizedKeysFile      .ssh/authorized_keys

 

保存重启ssh服务

systemctl restart sshd.service

 

由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys

在 /home/git/ 下创建目录 .ssh

cd /home/git

sudo mkdir .ssh

chown -R git:git .ssh

 

将客户端公钥导入服务器端 /home/git/.ssh/authorized_keys 文件

ssh git@xxx.xxx.xxx.xxx 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

回到服务器端,查看 .ssh 下是否存在 authorized_keys 文件:

 
[root@localhost git]# cd .ssh
[root@localhost .ssh]# ll
总用量 4
-rw-rw-r--. 1 git git 398 8月  28 20:08 authorized_keys

 

重要:

修改 .ssh 目录的权限为 700

修改 .ssh/authorized_keys 文件的权限为 600

[root@localhost git]# chmod 700 .ssh
[root@localhost git]# cd .ssh
[root@localhost .ssh]# chmod 600 authorized_keys 

 

 

禁止 git 用户 ssh 登录服务器

之前在服务器端创建的 git 用户不允许 ssh 登录服务器

编辑 /etc/passwd

找到:

git:x:502:504::/home/git:/bin/bash

修改为

git:x:502:504::/home/git:/bin/git-shell

此时 git 用户可以正常通过 ssh 使用 git,但无法通过 ssh 登录系统。

 

 

 

 

 

 

 

posted @ 2017-09-17 21:11  zhoupufelix的博客  阅读(248)  评论(0编辑  收藏  举报