[git]-Ubuntu上创建自己的git服务器&GitHub添加ssh密钥
Posted __tudou__
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[git]-Ubuntu上创建自己的git服务器&GitHub添加ssh密钥相关的知识,希望对你有一定的参考价值。
参考
linux.cn
liaoxuefeng的博客
官方手册,强烈推荐
如何生成自己的ssh密钥并添加到GitHub
GitHub help 生成密钥说明
命令行方式
搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。
1. 安装git
sudo apt-get install git
2. 创建一个git用户,并设置密码
sudo useradd git // 或者 sudo adduser git
passwd git
3. 创建自己的ssh 密钥
为了能方便的访问git服务器,我们在我们的本机创建一个 ssh 密钥。 输入以下命令一路enter就行了。
如何生成自己的ssh密钥并添加到GitHub
GitHub help 生成密钥说明
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- 这时会要求你输入保存密钥的路径,这时只需要点击回车保存在默认路径。
- 第二个问题是输入访问远程服务器所需的密码。
它生成两个密钥——公钥和私钥。id_rsa id_rsa.pub
记下您在下一步中需要使用的公钥的位置。默认位置为 ~/.ssh/
下面
4. 创建证书登录&给GitHub添加ssh密钥
收集所有需要登录的用户的公钥,就是将需要访问的用户的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys
文件里,一行一个。
如果是新建的git服务器,没有authorized_keys文件。
cat ~/.ssh/id_rsa.pub | ssh git@remote-server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
后续的添加用户的id_rsa.pub.只需要追加到git用户的authorized_keys文件内就行了。
给GitHub添加ssh密钥很简单。 只需要到你GitHub账号的设置里面 new SSH并吧本地id_rsa.pub里面的内容复制进去就行了。
5. 管理公钥
如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的。如果团队有几百号人,可以用Gitosis来管理公钥。
6.初始化Git仓库
用ssh 登录进服务器并为 Git 创建一个项目路径。
先选定一个目录作为Git仓库,假定是/src/learngit.git,在/src目录下 输入命令:(src是git用户下的目录)
sudo git init --bare learngit.git
会在src目录下面创建一个learngit.git的目录
如图所示:
Git就会创建一个裸仓库——即一个不包含当前工作目录的仓库,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区。
为了通过克隆你的仓库来创建一个新的裸仓库,你需要在克隆命令后加上 --bare 选项。
按照惯例,裸仓库的目录名(是目录)以 .git 结尾,就像上面的那样。
然后,把owner改为git:
sudo chown -R git:git learngit.git
7.克隆远程仓库
git clone git@remote-server:/home/git/src/learngit.git
假定/home/git/src/learngit.git
是远程服务器上的项目路径。
管理权限
暂时略
可选:禁止git用户的shell登录
出于安全考虑,创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
// 改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户
以上是关于[git]-Ubuntu上创建自己的git服务器&GitHub添加ssh密钥的主要内容,如果未能解决你的问题,请参考以下文章