看git的官方教程,里面没有把如何搭建线下git服务器的SSH的链接说清楚,也许做者认为有些东西是咱们理所固然知道的,但是仍是有些坑阻挡了咱们一些时间。通过折磨,终于把这个弄通了,过程记录以下:linux
服务器地址:10.10.10.19git
本机PC:10.10.10.99sql
假设咱们已经在服务器上创建起了一个空的git仓库目录 /opt/git-repo/project.git shell
咱们已经有一个专门的git服务器帐户,没有的话能够用root帐户新建(adduser git)服务器
接下来主要分为服务器端的配置和客户端的配置ssh
服务器端配置工具
通常linux系统上都已经安装了ssh,若是没有安装,自行百度安装fetch
如下步骤用root帐户进行操做:rest
编辑/etc/ssh/sshd_config文件code
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
放开以上三行的注释
StrictModes no
放开StrictModes yes的注释,同时修改yes为no
配置完成之后,重启ssh服务
service sshd restart
如下切换为git用户验证一下配置是否有效
生成ssh秘钥对
ssh-keygen -t rsa -P ‘’
连续按两次回车,不须要输入密码
生成之后,在 ~/.ssh/文件夹下会生成两个文件 id_rsa和id_rsa.pub文件
接下来把本地的公钥认证放入认证文件中,而且赋予600的权限
cat id_rsa.pub >> authorized_keys chmod 600 authorized_keys chmod 700 ~/.ssh/
而后使用 ssh git@localhost命令,若是没有让输入密码,则表明成功
客户端配置
客户端配置实际上和服务器的本地配置是同样的,只是在客户端生成秘钥对
打开git shell工具,而后输入 ssh-keygen -t rsa -P ‘’ 生成秘钥对
这样在C:\Users\ilove\.ssh下生成一样的两个文件id_rsa和id_rsa.pub,因为个人用户是ilove,因此是这样的,本身在找的时候,请切换到本身的用户目录,更改上id_rsa.pub的名字,为了表示这个文件是个人机器,我把文件名从新命名为了id_rsa_wtf.pub,而后上传到服务器,上传到服务器上之后,而后把这个文件追加到验证文件中去
cat id_rsa_wtf.pub >> authorized_keys
这时候再打开本机的git shell 再运行 git clone或者fetch就不会再让输入服务器密码了