centos搭建git服务器

1. 安装Git
2. 创建用户git
groupadd git
adduser git -g git
3. 创建authorized_keys文件
cd /home/git
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
cd /home
chown -R git:git git
要注意的是文件权限和所属用户。
(后续的git clone如果需要密码,很有可能是git用户没有访问authorized_keys文件的权限或者客户端ssh访问配置问题)
4. 收录客户端的SSH公钥到/home/git/.ssh/authorized_keys文件中
复制给管理员即可(cat id_rsa.pub >> authorized_keys)。
5. 配置服务器端ssh服务
# vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile /home/git/.ssh/authorized_keys #你的authorized_keys所在路径

6,初始化git仓库(裸库)
cd /data/gitrepo
mkdir project.git
git init –bare project.git
chown git:git project.git

7,禁用git用户shell登录
# vim /etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash
改为
git:x:1001:1001:,,,:/home/git:/usr/local/git/bin/git-shell

客户端git配置
在windows下如何实现ssh免密码登录呢?步骤如下:
1)设置git的user name和email:
$ git config –global user.name “XXXX”
$ git config –global user.mail “XXXX@XXXX.com”
若使用tortoisegit客户端,设置settings->Network->ssh client: 设置为 git目录下ssh.exe的全路径

2)生成SSH密钥过程:
1.查看是否已经有了ssh密钥:cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除
2.生存密钥:
$ ssh-keygen -t rsa -C “XXXX@XXXX.com”
按3个回车,密码为空。
这样即可在C:\Users\admin\.sss文件下得到两个文件:id_rsa 和id_rsa.pub
id_rsa.pub提供给git服务器后,即可拉取远程仓库分支git clone git@ip-address:/data/gitrepo/project.git

发表评论

电子邮件地址不会被公开。 必填项已用*标注