Mac OS X 架设基于 SSH 的 Git 服务

本文详细介绍了如何通过SSH协议从Git服务器克隆repo,以及如何在MACOS上架设基于SSH的git服务。包括指定SSH URL、使用`git clone`命令克隆repo、不指定协议时Git默认为SSH、不指定用户时使用当前登录用户、设置`authorized_keys`机制免密克隆、以及如何在服务器上生成和配置裸的Git repo。

1、先说一下 如何 通过 MAC终端利用SSH协议科隆 git服务器上的 repo


要通过 SSH 克隆一个 Git repository,我们可以像下面这样指定 ssh:// URL :

$ git clone ssh://user@server:project.git

或者我们也可以不指定一个协议 — 如果没有显式指定的话 Git 假设是 SSH:

$ git clone user@server:project.git

我们也可以不指定一个用户,这样的话 Git 会假设是当前登录的用户(和使用 SSH 命令的情形类似)。


如果 git 服务端机器 与 git 客户端的机器  已经设置了  authorized_keys 机制,那么代码直接就可以克隆下来了,如果没有设置,则需要输入 指定用户的 登陆密码:关于如何设置  authorized_keys ,传送门



2、架设一个 基于 SSH 的git 服务

其实质就是 生成一个 裸 的 Repository 放到SSH服务器上(完了,原理就这么简单)

SSH服务根本就不用配置,MAC OS 上现成的 。

开启方法 -> System Preference -> Sharing -> Remote Login (checked) 这样就可以了

生成一个裸的 Repository

假设 my_project 是我们在本地的一个 git Repository 项目目录,通过使用 --bare 参数生成只包含 git 信息的裸的项目拷贝

$ git clone --bare my_project my_project.git

如果你没有 my_project 这样的目录,那么没关系,你用 Xcode 创建一个 工程,勾选 git 版本控制,创建好后的目录就可以用
也可以随便找一个 目录 ,终端 cd 进去之后直接 git init   就好了


通过 scp 命令把 git 拷贝存储到服务器

现在我们已经有了一个裸的 Repository 的拷贝,下一步就是把它放到服务器上。假设我们已经有了一个名为git.example.com 的服务器,并且已经可以通过 SSH 进行访问。假设我们也在服务器的/opt 目录下建了一个名为 git 目录专门用来存放 git 项目信息。我们就可以像下面这样通过拷贝一个裸的 Repository 到服务器上来设置一个新的 Repository:

$ scp -r my_project.git user@git.example.com:/opt/git

需要注意的是,如果我们给 SSH 设置了不同的访问端口(不是默认的 22),比如说是8080,那么我们需要用-P 8080 参数来指定 SSH 使用的端口。

$ scp -r -P 8080 my_project.git user@git.example.com:/opt/git



使用服务器上的 git

这时候,其他也具有到同一台服务器 SSH 访问权限的用户就可以通过运行下面的命令来克隆我们的项目啦,要求至少对 /opt/git 目录具有读取权限:

$ git clone user@git.example.com:/opt/git/my_project.git

这里同样要注意 SSH 端口的问题,如果不是默认的 SSH 端口,要像下面这样运行命令(注意没有省略 ssh://,以及 8080 端口号放置的位置)

$ git clone ssh://user@git.example.com:8080/opt/git/my_project.git

剩下的就是和通常 git 的用法一样了,git pull git push 等

例如:
$ git pull ssh://user@git.example.com:8080/opt/git/my_project.git



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值