一、服务端
1.安装git
yum -y install git
2.查看git版本
git --version
3.创建账户与密码
useradd git // 创建用户
passwd git // 设置密码
4.创建git仓库
a.先选定一个目录作为Git仓库,假定是/git/test.git,在/git目录下输入命令:
git init --bare test.git
b.接下来将test.git的owner改为前面创建的git账户
chown -R git:git test.git/
二、客户端
1.首先在本地安装git:https://git-scm.com/downloads
2.安装完成后,创建一个文件夹,如test
然后选中test文件夹,鼠标右键,找到git bash here选项并点击,即可直接打开Git Bash命令窗口
接着输入以下命令,即可从 Linux Git 服务器上 clone 项目:
git clone git@你的服务器地址:/git/test.git
三、使用SSH公钥验证方式连接git服务器
1.客户端,创建 SSH 公钥和私钥
ssh-keygen -t rsa -C "XXXX@XXX.com"
此时 C:\Users\用户名.ssh 下会多出两个文件 id_rsa 和 id_rsa.pub
id_rsa 是私钥
id_rsa.pub 是公钥
2.服务器端,将 Git 打开 RSA 认证
进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
修改完成后重启 sshd 服务systemctl restart sshd.service
systemctl restart sshd.service
在 /home/git/ 下创建目录.ssh同时将它的owner改为git
3.最后回到客户端,将刚才生成的公钥导入服务器端
ssh git@你的服务器地址 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
也可以把id_rsa.pub的内容粘贴到服务器端/home/git/.ssh/authorized_keys 里
ps:如果发现按照以上方法配置后,仍需要输入密码,你优先排除服务端文件权限问题
修改 /home/git 的权限为 700
修改 /home/git/.ssh 目录的权限为 700
修改 /home/git/.ssh/authorized_keys 文件的权限为 600
四、其它
出于安全考虑,我们在服务器端创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
查看远程仓库地址:git remote show origin
切换远程仓库地址:git remote set-url origin xxx(新的仓库地址)