【转载】使用 ssh 协议搭建 git 服务器

转载:https://www.cnblogs.com/chaohacker/p/14525300.html
https://blog.csdn.net/weixin_36057482/article/details/116887951

  1. 前提说明
    • 业务需要,临时的将一台电脑当作git服务器,作为代码仓库
  • 使用ssh协议作为客户端和服务端连接的协议

  • 确保安装了ssh服务

  1. 服务端的搭建
    设置服务器的权限

修改ssh文件夹权限

chmod 700 ~/.ssh/

修改文件权限

chmod 600 ~/.ssh/authorized_keys

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

修改 sshd_config 配置文件,使得注册公钥的客户端可以直接登录
sudo vim /etc/ssh/sshd_config

修改

PubkeyAuthentication yes

AuthorizedKeysFile ~/.ssh/authorized_keys

重启 sshd服务

sudo service sshd restart

创建git仓库文件

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

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

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

执行 ssh-keygen -o

一直 Enter 就行

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

我们要把公钥 id_rsa.pub 给服务端,注册在服务端,之后访问服务端的时候 就不需要输入密码了
两种办法,name 是 服务端的用户名称 server是ip地址

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

$ ssh-copy-id -i ~/.ssh/id_rsa.pub name@server
输入密码然后完成

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

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

如果出现

sign_and_send_pubkey: signing failed: agent refused operation

执行 ssh-add ~/.ssh/id_rsa

拉取 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

点赞

发表回复

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