##准备
###环境:linux/centos 7.4
###安装:
yum install git(服务器端使用)
https://pan.baidu.com/s/1PbKOU1KoF6JhUumksD4nEg (客户端)
##服务器端开始
##安装git
yum install git
创建操控git的用户
sudo useradd git
这时候系统会自动在服务器中 /home 文件夹建立一个git用户创建的文件夹
获取git操作的shell文件,放到这个git文件中(获得技能)
$cp /usr/share/doc/git-1.8.3.1/contrib/git-shell-commands /home/git -R
$ chown git:git /home/git/git-shell-commands/ -R
$ chmod +x /home/git/git-shell-commands/help
$ chmod +x /home/git/git-shell-commands/list
配置技能驱动项
usermod -s /usr/bin/git-shell -g git -f /home/git git
usermod [options] user
[options]
-d<登入目录> 修改用户登入时的目录。
-g<群组> 修改用户所属的群组。
-s<shell> 修改用户登入后所使用的shell。 注意: /usr/bin/git-shell必须依赖我们所学的技能git-shell-common才能够配合使用 ##创建一个空的仓库 #########当前所处的位置:/home/gitsudo git init --bare sample.git
sudo chown -R git:git sample.git
###改变所属权限 ##配置SSH免密登陆 原理:一把钥匙一把锁,钥匙是私钥(id_rsa),锁是公钥(id_rsa.pub),将锁放到服务器上即可。
- mkdir .ssh
- cd .ssh
- vim authorized_keys ###新建锁放的地方
接下来复制从客户端提供的锁,复制进去保存即可。
*下面这一步很重要,修改操作authorized_keys的权限 chown git:git -R /home/git/.ssh chmod 600 /home/git/.ssh/authorized_keys
配置允许SSH登陆,检查下面几行前面"#"注释是否取掉。
/etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
到此为止
#客户端提供锁的操作
##安装git然后打开git-bash $
ssh-keygen -t rsa user@example.com
##生成钥匙和锁
第一次操作就直接按三下回车即可(这几次是告诉你生成位置和使用该锁的密码等等)
$cat ~/.ssh/id_rsa.pub
##获取锁 将这个锁追加到服务器上的authorized_keys即可
#使用远程仓库(客户端)
git clone git@server:/path/to/sample.git
格式说明:$ git clone 用户名@ip_server:/home/git/sample.git
#结果
$ git clone git@127.0.0.1:/home/git/sample.git Cloning into 'sample'... warning: You appear to have cloned an empty repository.
大功告成
#心得
以上是个人实验所得,若有错误之处,请麻烦指出。
由于对git/linux/ssh,不是很熟悉,所以该实验花了我大量的时间去搭建,不容易啊~~~
#参考文献
https://segmentfault.com/a/1190000011313567 七步搭建 Git 服务器 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000 搭建Git服务器 https://blog.csdn.net/u013227473/article/details/79021190 ssh登录的调试方法和常见问题 http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html SSH原理与运用(一):远程登录