本文主要是介绍鹏程万里---ubuntu16搭建git服务器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先要搞清楚一个概念,就是用什么账户执行什么操作
一开始登陆ubuntu是root账户
执行操作,在用vi的时候会遇到一个很蛋疼的,使用vi编辑时上下左右方向键被转化为A、B、C、D怎么办?
root@GIT:/home# echo "set nocp" >> ~/.vimrc
root@GIT:/home# source ~/.vimrc
解决了,然后才开始搞服务器
sudo apt-get install git-core openssh-server openssh-client
$ git config --global user.name "myname"
$ git config --global user.email "myemail@gmail.com"
$ sudo apt-get install python-setuptools
$ git clone https://github.com/res0nat0r/gitosis.git #中间两个为零
$ cd gitosis/
$ sudo python setup.py install
接下来就有讲究了,也是坑
$ sudo useradd -m git
root@GIT:~/gitosis# sudo passwd git
输入新的 UNIX 密码: 123456
重新输入新的 UNIX 密码: 123456
passwd:已成功更新密码
这里创建的是一个ubuntu的账户用来管理git
然后继续
$ ssh-keygen -t rsa # 这里会提示输入密码,我们不输入直接回车即可
root@GIT:/home# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:5fAHCO0w4qG+iKa6eO0rlMlyaompwjFpEjpqsTEdnVE root@GIT
The key's randomart image is:
+---[RSA 2048]----+
| oE |
| o.o... |
| o.oo+o o |
|. ...o .= . |
|.+oo. S o . |
|=OB. . |
|BOOo |
|XB+ . |
|#o oo. |
+----[SHA256]-----+
root@GIT:/home# cp /root/.ssh/id_rsa.pub /home/git/
把生成的id_rsa.pub拷到git账户下,比如 /home/git/,用这个key来初始化git仓库
上面所有操作都是root账户
接下来操作是git账户
$ su git # 输入密码,切到git用户
~git$ sudo chmod a+r /home/git/id_rsa.pub
~git$ sudo -H -u git gitosis-init < /home/git/id_rsa.pub
执行上面两条遇到了
不在 sudoers 文件中。此事将被报告。请参考
https://blog.csdn.net/hjfcgt123/article/details/85863541
root@GIT:/etc# chmod 777 sudoers
root@GIT:/etc# vi sudoers
root@GIT:/etc# vi sudoers
root@GIT:/etc# chmod 440 sudoers
在root的权限的那行下面加入
git ALL=(ALL) ALL
~git$ sudo chown git:git /home/git/repositories
~git$ sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
~git$ ubuntu:/tmp/gitosis$ sudo chmod 755 /home/git/repositories
~git$ cd /home/git/repositories/
~git$ git init --bare test.git # 此时为空,不能clone,必须先让管理员或有权限的人放一个初始化的版本到仓库中
到此为止服务器端的事干完了
接下来到用来管理git的客户机上,也就是我登陆服务器root账户的电脑
$ mkdir gitadmin
$ cd gitadmin/
$ gitadmin$ git clone git@10.239.51.66:gitosis-admin.git
# 若报错,可以尝试全路径,
$ git clone git@192.168.1.106:/home/git/repositories/gitosis-admin.git
没错这里可能需要全路径,路径里的ip就是你的git服务器的ip地址
https://www.jianshu.com/p/37b4198696b8参考这里
但是一个坑事
你最好生成自己的ssh公钥在C:\Users\Administrator\.ssh\id_rsa.pub
然后把这个pub 拷贝到E:\hypn\git\gitadmin\gitosis-admin\keydir目录下
然后修改gitosis.conf
[gitosis]
[group gitosis-admin]
members = root@GIT id_rsa 2
writable = gitosis-admin
[group test]
members = root@GIT id_rsa 2
writable = test
然后提交就可以让你自己获得读写权限,注意,提交的目录是DZ0012+Administrator@DZ0012 MINGW64 /e/hypn/git/gitadmin/gitosis-admin
在下载test仓库的时候注意,可以全路径下载也可以非全路径,一个不行就试另外一个。
如果还需要ssh密码
root@GIT:/# find -name "authorized_keys"
find: `./run/user/1000/gvfs': 权限不够
./home/git/.ssh/authorized_keys目录在这里
git@GIT:~$ ls -a
. .. .bash_logout .bashrc .cache examples.desktop gitosis .gitosis.conf id_rsa.pub .profile repositories .ssh .viminfo
git@GIT:~$ cd .ssh/
git@GIT:~/.ssh$ chmod 600 authorized_keys
git@GIT:~/.ssh$ cd ..
git@GIT:~$ chmod 700 -R .ssh
git@GIT:~$ sudo /etc/init.d/ssh restart
[ ok ] Restarting ssh (via systemctl): ssh.service.
搞定了
这篇关于鹏程万里---ubuntu16搭建git服务器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!