安装git
yum install -y git
我选择/data/git/demo.git作为仓库
mkdir -p /data/git // 新建文件夹
cd /data/git // 进入/data/git文件夹
git init --bare demo.git // 创建一个裸仓库
关于--bare参数及其作用详情请看这篇文章传送门
创建git用户
adduser git
将learngit.git拥有者给到git用户
chown -R git:git demo.git
在本地拉取demo仓库
git clone git@阿里云外网地址:/data/git/demo.git
关联本地项目到远程仓库。
如果本地项目已经完成,怎么关联本地项目到远程呢?
在项目的根目录初始化仓库
git remote add origin git@阿里云外网地址:/data/git/demo.git // 关联远程仓库
git init // 初始化git仓库
git add -A // 将所有的文件添加到git缓存区
git commit -m '.....' // 将缓存区文件提交到git仓库
git push -u origin master // 提交并关联远程仓库
第一,当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:
The authenticity of host 'xx.xx.xx.xx' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?
输入yes,后又要输入密码,输入密码,仓库成功拉取到了本地。但是一般都是用代替密码来验证的。
生成SSH Key密钥
在用户主目录下,看看有没有.ssh目录,.ssh里有没有id_rsa和id_rsa.pub两个文件。有代表你以前生成过密钥,不用重新生成。(我的之前生成的公钥一直要密码登录,但是重新生成后就没有问题了)
ssh-keygen -t rsa -C "email@example.com" // 生成密钥
tips: 关于git的详细教程,不懂的可以移步廖雪峰老师的网站学习传送门
服务器配置git公钥验证
vi /etc/ssh/sshd_config // 编辑配置文件
RSAAuthentication yes // 去掉注释 #
PubkeyAuthentication yes // 去掉注释 #
AuthorizedKeysFile .ssh/authorized_keys // .ssh/authorized_keys 为公钥配置文件
.ssh/authorized_keys 在 /home/git文件下,故要新建文件
mkdir -p /home/git/.ssh // 新建文件夹
touch authorized_keys // 新建文件
复制本地git生成的id_rsa.pub文件中内容,粘贴到authorized_keys中,保存。
git clone git@阿里云外网地址:/data/git/demo.git
发现不要密码也可以拉取仓库了。
禁用git用户的shell登陆
处于安全考虑,git用户不能通过shell登录。
git:x:1002:1002:,,,:/home/git:/bin/bash // 将这句改成下面这句
git:x:1002:1002:,,,:/home/git:/usr/bin/git-shell
到此,git的配置就完成了。