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 登录系统。