1,Linux安装git见上篇:https://www.cnblogs.com/mengzhilva/p/10675289.html
2,建立git用户,(可以建立多个用户实现测试服务器多人登录操作git的功能)
groupadd git 建立git用户组
useradd git -g git 建立git用户属于git
passwd git 设置密码,需要英文加字母数字。
3,设置一个代码库
mkdir /usr/gitdata
cd /usr/gitdata
mkdir -p myproject.git 建立一个叫myproject的代码库
git init --bare /usr/gitdata/myproject.git 初始化
chown -R git:git myproject.git/ 设置权限给git用户
4,测试连接,这个时候已经可以在当前服务器上连接git,但会报错
在服务器上需要克隆代码的地方,新建一个文件夹,然后执行
git clone git@121.40.179.200: /usr/gitdata/myproject.git
出现此错误是因为
我们服务端安装的git不在/usr/bin目录下
需要将git安装目录bin下面的git-upload-pack 和git-receive-pack 文件复制到/usr/bin目录下。我本机上的git安装在/usr/local/git目录下
cd /usr/local/git
cp git-upload-pack /usr/bin
cp git-receive-pack /usr/bin
复制完成,再执行克隆
git clone git@121.40.179.200: /usr/gitdata/myproject.git
克隆成功后,可以用
git status查看所在分支。
5,提交文件
vim aa.php 新建一个文件
git add ./ 将文件添加的git
git commit -am 添加测试 提交文件
第一次提交的时候,会提示输入邮箱和用户名,随便输入就行
git config --global user.email "test@163.com"
git config --global user.name "test"
git push origin master 将文件提交到主分支
以上就是简单的git服务器,但是此时每次操作都需要输入密码,需要用密钥来解决。
6,添加秘钥
修改/etc/ssh/sshd_config中将RSA认证打开
sudo service sshd restart #重启sshd服务
,在Linux下生成ssh秘钥方法
第一步,先生成秘钥
ssh-keygen -t rsa -C "test@163.com" 这里的邮箱没有设置的话需要先设置,见上面设置邮箱git config --global user.email "test@163.com"
生成第路径是/root/.ssh/id_rsa.pub
第二步,把秘钥移动到git的目录下。
由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys
在 /home/git/ 下创建目录 .ssh
cd /home/git/
mkdir .ssh 生成ssh文件夹
touch ./.ssh/authorized_keys
mv /root/.ssh/id_rsa.pub ./.ssh 把秘钥移动到需要克隆的目录下。
cd .ssh
cat id_rsa.pub >> authorized_keys 将公钥放到git的authorized_keys 中
chown 700 ./.ssh/authorized_keys 修改权限
chown 700 .ssh 修改权限
chown -R git:git .ssh 修改ssh的用户
第三步,再次回到代码目录执行克隆
git clone git@121.40.179.200:/mnt/www/sberwm/sampla.git
这次就不用再输入密码了