zhufeng518 发表于 2018-1-14 06:31:12

CentOS下搭建Git服务器(基于SSH协议)

凯少
博客园 ::首页 ::新随笔 ::联系 ::订阅 ::管理 20 Posts ::0 Stories::1 Comments::0 Trackbacks公告
CentOS下搭建Git服务器(基于SSH协议)1,安装Git所需依赖包   # yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel   # yum install gcc perl-ExtUtils-MakeMaker 2,卸载CentOS自带的git   # yum remove git      3,下载较新Git版本   # mkdir /usr/src/tools   # cd /usr/src/tools   # wget https://www.kernel.org/pub/software/scm/git/git-2.8.3.tar.gz   # tar -zxvf git-2.8.3.tar 4,安装Git并添加到环境变量中,Git安装路径为/usr/local/git   # cd git-2.8.3.tar   # make prefix=/usr/local/git all   # make prefix=/usr/local/git install   # echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc   # source /etc/bashrc          完毕,查看git版本号   # git --version5,创建用户git,用来运行Git服务   # adduser git   # su git   # cd ~   # mkdir .ssh   # touch authorized_keys   在git用户的家目录(/home/git/)创建一个.ssh的目录,将协同工作人员的SSH公钥添加到该目录的authorized_keys文件中。 6,收录客户端的SSH公钥到/home/git/.ssh/authorized_keys文件中   客户端使用命令 ssh-keygen -t rsa -C "你的email地址" ,会在~/.ssh/id_rsa.pub生成SSH公钥,复制给管理员即可。  7,配置服务器端ssh服务   # vim /etc/ssh/sshd_config   RSAAuthentication yes   PubkeyAuthentication yes   AuthorizedKeysFile /home/git/.ssh/authorized_keys #你的authorized_keys所在路径 8,初始化git仓库(裸库)   # cd /home/git      # mkdir project.git   # git init --bare project.git 9,禁用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 clone 命令克隆远程仓库了,注意这里有些问题需要注意,SSH对公钥,私钥的权限和所有权的要求是非常严格的,总结如下:1,下面两个目录的所有权必须是git(上面创建的git用户),所属组也应该是git,权限必须为700   ①/home/git   # chmod 700 /home/git   ②/home/git/.ssh   # chmod 700 /home/git/.ssh2,公钥文件的所有权必须是git,所属组也必须是git,权限必须是644   ①/home/git/.ssh/authorized_keys #c hmod 644 /home/git/.ssh/authorized_keys 如果权限不对,会造成不能正常登录,报错信息:Permission denied (publickey,gssapi-with-mic.....)posted on 2017-04-11 16:02 凯少 阅读(...) 评论(...)编辑 收藏刷新评论刷新页面返回顶部  Copyright @凯少
  Powered by:.Text and ASP.NET
  Theme by: .NET Monster
页: [1]
查看完整版本: CentOS下搭建Git服务器(基于SSH协议)