前段时间购买了一个云服务器,想在上面自己东西。对于程序猿来讲,代码的修改记录是个非常重要的事情,自己搞个git库就理所当然,在网上搜了搜记录,参考了一下,基于我个人使用的原因,没有加入权限管理那些特性极其对应的控件。
1、安装git
sudo apt-get install git-core
2、安装ssh服务
git的数据交换跟交互是基于ssh的,需要给系统配置ssh服务,通过 ps -ef|grep sshd看看系统是否已经有ssh服务,
如果没有则安装 sudo apt-get install openssh-server openssh-client
3、创建git服务器管理用户
sudo useradd git(创建名称为git的用户)
sudo passwd git(git用户对应的密码也是git)
4、创建git仓库存储目录和权限
sudo mkdir /home/git/repositories
sudo chown git:git /home/git/repositories
sudo chmod 755 /home/git/repositories
5、切换到git用户并建立服务器仓库
su git
cd /home/git/repositories
初始化一个仓库名称为alloySQL
git init --bare alloySQL.git
最后在客户端上验证一下:
在客户端命令行输入:git clone git@123.207.96.87:/home/git/repositories/alloySQL.git
123.207.96.87 为我的git服务器的IP地址(我的云服务器地址)
根据提示先输入yes,然后输入密码git用户的密码(上面设定为git)
之后就可以在客户端看到 alloySQL这个目录了,进入这个目录,修改这目录里面的文件,就能把修改push到服务器了
-------------------更新1----------------------
解决ssh不能添加已访问的主机到信任列表的问题(Failed to add the host to the list of known hosts)
在ssh访问一个服务器的时候第一次会提示签名验证,只要同意之后就会将这个host添加到~/.ssh中的known_hosts中,以后再连接就不会再出现提示了。
但是有的时候每次还是提示,这个原因可能是因为用root权限移动或用户的home文件夹位置,所以产生权限问题
解决方法(假如是ubuntu用户)
sudo chown ubuntu ~/.ssh/
sudo chown ubuntu ~/.ssh/*
sudo chmod 764 ~/.ssh
sudo chmod 764 ~/.ssh/*
-------------------更新2----------------------
上面的方法再每次提交修改到服务器的时候都会要求输入密码,这个比较麻烦,为了解决这个问题,可以将客户端用户ssh key写入服务器端git用户的authorized_keys文件中,具体操作
1、在客户端shell命令行输入: ssh-keygen
会在~/.ssh/id_rsa.pub 这个公钥文件
2、把上面这个公钥文件内容上传到git服务器,保证git用户可读
服务器在su到git用户状态时输入 cat id_rsa.pub >> ~/.ssh/authorized_keys