CentOS7搭建Git服务器

1.使用环境

1.1服务端

  • 操作系统:CentOS7
  • SSH:OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017

1.2客户端

  • Win10 专业版:10.0.18362.356
  • Git:git version 2.16.2.windows.1
  • TortoiseGit:TortoiseGit 2.10.0.2

2.搭建步骤

2.1升级服务器端git

CentOS自带的git版本较低,最好升级为较新的版本,参见博客升级git版本

2.2添加系统服务器端用户

  • adduser git,添加用户
  • passwd git,设置密码

2.3服务器端创建git库

  • 以新建的git用户登录
  • 创建仓库目录/home/git/git-server/test.git
  • 进入test.git目录,git init --bare,初始化git仓库

2.4客户端下载

  • 选中一个目录右键->Git Bash Here
  • git clone git@192.168.1.108:/home/git/git-server/test.git,输入服务器git用户密码,回车下载

当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:
The authenticity of host ‘github.com (xx.xx.xx.xx)’ can’t be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?
这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:
Warning: Permanently added ‘github.com’ (RSA) to the list of known hosts.
这个警告只会出现一次,后面的操作就不会有任何警告了。

3.添加SSH Key免密码登录

使用以上方式访问git服务器,每次访问时均需输入密码,可以采用RSA密钥人证方式免密码访问

3.1开启服务端RSA认证功能

  • 进入服务器 /etc/ssh 目录,打开sshd_config文件,去掉
    PubkeyAuthentication yes
    这一样前面的#,保存
    其中 Port 22 是 ssh 端口号,默认22
    网上很多人写的要加 RSAAuthentication yes 配置,这个版本不需要
  • 重启ssh服务,service sshd restart

3.2本地验证RSA认证

  • 打开一个终端,输入ssh-keygen,一直回车,完成后会在用户目录的 .ssh目录生成两个文件,公钥文件 id_rsa.pub 和私钥文件 id_rsa,如果当前用户是git,则目录位置为 /home/git/.ssh
  • 进入 .ssh 目录,执行 cat id_rsa.pub >> authorized_keys 将公钥导入
  • 修改 .ssh 目录访问权限,chmod 600 *
  • 进入终端执行 ssh localhost,显示登录成功

如果PubkeyAuthentication yes 未设置,登录时会提示错误:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)
如果未修改 .ssh 目录权限,会提示错误:
Bad owner or permissions on /home/git/.ssh/config

3.3添加客户端公钥

  • 客户端任意目录右键->git bash here进入git命令行
  • 执行命令 ssh-keygen -C xxxxx@gmai.com,一直回车,会在用户目录生成两个文件,公钥文件 id_rsa.pub 和私钥文件 id_rsa
  • 将客户端公钥文件中的内容追加到服务器 authorized_keys 文件中,如果文件中已有内容,回车分割
  • 在git命令行中输入 ssh git@192.168.1.108:/home/git/git-server/test.git,回车,登录成功

3.4TortoiseGit添加私钥

git生成的私钥,TortoiseGit不能直接使用,需转换为TortoiseGit使用的私钥格式才能使用

  • 在TortoiseGit的安装菜单中找到PuTTYGen并运行,切换到Conversions标签页,中点击Import key,选择ssh-keygen生成的私钥文件所在位置,比如id_rsa文件
  • 点击Save private key按钮,将其保存为.ppk文件
  • 打开Pageant,点击Add Key,选择前一步所保存的.ppk文件所在的位置,确定
  • 右键菜单选择TortoiseGit Git Clone 菜单,输入git服务地址,确定,下载成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值