devops - 企业内部搭建git服务器
1. 简单快速的方案
# 新建git用户, 并创建用户主目录 /home/git
sudo useradd -m git
# 设定密码
sudo passwd git
# 在本地以git用户身份通过ssh远程登录创建git仓库
ssh git@192.168.0.105 git init --bare test.git
# 在本地生成一个公钥文件
ssh-keygen
# 将公钥文件添加到远程服务器, 实现免密登录
ssh-copy-id git@192.168.0.105
- step 3: 将远程服务器git仓库克隆到本地,并初始化
# clone 远程仓库
git clone git@192.168.0.105:test.git
# 添加 readme 文件
touch README.md
# 将文件提交
git commit -am 'init test'
# 将commit推送到远程git仓库
git push
2. 全面细致的方案
- step1: 登录远程服务器,新建git用户,及用户主目录, ssh配置目录, 初始化git仓库
# 新建git用户组
sudo groupadd git
# 新建git用户并设置用户组, 并创建用户主目录 /home/git
sudo useradd -g git -m git
# 给新建的git用户设定密码
sudo passwd git
# 重新以git用户身份登录
ssh git@192.168.0.105
# 新建git用户的 SSH 目录/home/git/.ssh, 并设置权限
mkdir -m 755 .ssh
# 创建存储公钥文件,并设置权限
touch .ssh/authorized_keys
chmod 644 .ssh/authorized_keys
# 在git用户主目录下创建git仓库
cd /home/git
git init --bare test.git
- step 2: 将本地的公钥上传到远程服务器实现无密码访问
# 在本地生成一个公钥文件
ssh-keygen
# 将公钥文件添加到远程服务器
ssh git@192.168.0.105 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
# 如果还是无法免密登录,则查看服务器ssh配置文件 /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
- step 3: 在本地创建git仓库,并设置远端服务器地址
# 在本地初始化仓库
git init test
# 添加 readme 文件
touch README.md
# 将文件提交
git commit -am 'init test'
# 为本地仓库设置远程服务器地址
git remote add origin git@192.168.0.105:test.git
# 将commit推送到远程git仓库
git push