本地搭建git仓库
- 2018-03-21 10:24:00
- 看写写blog
- 转贴:
- csdn
- 1407
首先说一下我使用的的是ubuntu的14.04 LTS amd64 版本的系统
搭建git服务器
add user
sudo adduser git su - git //加上 - 可以直接切换到 git 工作目录 cd //切换到用户主目录 即 cd ~ mkdir .ssh && chmod 700 .ssh touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
add 公钥
Next,你需要添加一些公钥到 authorized_keys 文件里面,这样就 可以通过 公钥进入而不需要输入密码,假如你有一个公钥的文件在你的 test 账号下面,一般在 /home/test/.ssh/ 目录下面有一个 id_rsa.pub这个就是你的公钥,没有的话通过 ssh-keygen
生成一个,就可以了,可以参考这个
https://git-scm.com/book/zh/v1/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E7%94%9F%E6%88%90-SSH-%E5%85%AC%E9%92%A5
sudo cat /home/test/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 就把你test账号的公钥加进去了,如果你想添加别的可以直接复制到authorized_keys文件就行了,注意:每一个公钥是一行
add git repo
cd mkdir git mkdir git/test.git cd git/test.git git init --bare # 一般提示 Initialized empty Git repository in /git/git/project.git/ 表示成功
test
切换到test 账号测试一下
su - test cd mkdir git cd git git clone git@localhost:git/test.git # 这里要注意使用 因为我们是本机到时候换成目标主机ip 或者域名就行了,还有注意 :git/test.git 对应的目录是 localhost/home/git/git/test.git 如果你怕出错就这样写: git clone git@server:/home/git/git/test.git 如果成功你就会克隆成功了,不成功就会有一些提示 可以google,当然了我也很乐意看到你的评论哈哈
一定要注意写的路径对不对,如果不对,那还说啥呢
问题
这个时候其实有一个问题,那就是所以在authorized_keys 的公钥 都可以通过ssh 远程登陆我们的git账号了,这样做就非常的不安全了,毕竟我们只是想让他们访问我的git,但是并不想让他们控制我 们的用户是吧,这里需要把登陆成功之后的 shell 改为 git-shell而不是bash shell 就行了
cat /etc/shells # 看看有木有git-shell 如果没有 那就添加 which git-shell # 如果你安装的有这里会显示shell的路径,安装git自带 sudo vim /etc/shells # 把上一步得到的路径添加到最后一行(另起一行) sudo chsh git -s 路径 # 把git 用户的登陆shell 改为 git-shell git-shell 一般在/usr/bin/git-shell 所以 sudo chsh git -s /usr/bin/git-shell # -s 后面是路径 如果修改成功的话,你可以打开passwd文件看一下 因为chsh命令修改的就是这个文件 cat /etc/passwd 一般情况下最后一行是我们的新添加的用户 这个是我的 git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell 如果最后的 git-shell 表示修改成功,如果没有修改成功 你也可以直接修改这个文件,廖雪峰大神就是使用的这种方法
test
ssh git@gitserver 出现下面的提示表示已经成功,ssh只能使用git命令了: fatal: Interactive git shell is not enabled. hint: ~/git-shell-commands should exist and have read and execute access. Connection to gitserver closed.
小结
跟着廖雪峰大神的教程走完了,由于使用的是空闲时间所以基本上花费了一个月的时间,很慢我知道,不过我觉得只要一直在进步就可以了毕竟我们一直在进步这是很值得骄傲的哈。总得来说不管是使用git来进行开发or 进行自己的文档 or 自己的一些配置 有很多东西都可以使用git来管理,这样当我们出现问题的时候就可以一键恢复类似于vi一样[Ctrl-u] 就可以回到我们想要回到的地方,不过git 不仅可以回滚还可以前进哈哈,所以叫时光穿梭机。类似于vi的 “.” 重复上一步在insert 缓冲区做的操作,我觉得git 的clone 也是这种功能,我们可以把我们的 vim git hexo .bashrc grub fstab 等 我们认为重要的东西通过git 管理起来,因为这是私人配置,并没有隐私我们可以push到github这样我们换一台电脑,git clone 就可以恢复到自己的配置了,我觉得还是想当有用的。https://notelzg.github.io/2016/08/06/create-git-rep/
发表评论
联系我们
联系人: | 郑女士 |
---|---|
电话: | 13792883250 |
Email: | zhengqiaoyin@cnezsoft.com |