使用ssh协议搭建git服务器

使用ssh协议搭建git服务器
参考https://blog.csdn.net/hhhzua/article/details/79471997
参考http://www.worldhello.net/gotgit/05-git-server/030-ssh.html

1. 前提说明

​ 业务需要,临时的将一台电脑当作git服务器,作为代码仓库

​ 使用ssh协议作为客户端和服务端连接的协议

​ 以下只说干货,没有学习讲解

​ 确保安装了ssh服务

2. 服务端的搭建

  1. 设置服务器的权限

    1. 修改ssh文件夹权限

      chmod 700 ~/.ssh/

    2. 修改文件权限

      chmod 600 ~/.ssh/authorized_keys

    如果没有以上文件,说明没有ssh服务,请安装

    1. 修改sshd_config配置文件,使得注册公钥的客户端可以直接登录

    sudo vim /etc/ssh/sshd_config

    修改

    PubkeyAuthentication yes

    AuthorizedKeysFile ~/.ssh/authorized_keys

  2. 重启 sshd服务

    sudo service sshd restart

  3. 创建git仓库文件

    选择一个目录进行创建.git

    git init --bare sample.git
    

    注意的是命令是用于创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库只保存git历史提交的版本信息,纯粹是为了共享,所以不让用户直接登录到服务器上去改工作

3. 客户端的搭建

​ 客户端因为需要登录 服务端,所有ssh的公钥 私钥肯定要有

  1. 执行 ssh-keygen -o

    ssh-keygen -o

    一直Enter就行

    然后就会发现~/.ssh 下面生成了默认的id_rsa id_rsa.pub

    1. 我们要把公钥 id_rsa.pub给服务端,注册在服务端,之后访问服务端的时候 就不需要输入密码了

    两种办法,name是 服务端的用户名称 server是ip地址

    1. 客户端自己进行拷贝,需要客户端知道服务端用户的密码

      $ ssh-copy-id -i ~/.ssh/id_rsa.pub name@server
      

      输入密码然后完成

    2. 在服务端上操作, 追加到authorized_keys中

      cat id_rsa.pub >> ~/.ssh/authorized_keys
      
  2. 问题

    如果出现

    sign_and_send_pubkey: signing failed: agent refused operation

    执行 ssh-add ~/.ssh/id_rsa

  3. 拉取git仓库

    两种写法

    语法1: ssh://[<username>@]<server>[:<port>]/path/to/repos/myrepo.git
    语法2: [<username>@]<server>:/path/to/repos/myrepo.git
    

    /path/to/repos/myrepo.git是服务器中版本库的绝对路径。若用相对路径则相对于username用户的主目录而言。

    这里我使用语法2:

    ​ git clone vr@192.168.170.57:VoiceData/vr.git

posted @ 2021-03-12 17:38  make_wheels  阅读(203)  评论(0)    收藏  举报