第四章 服务器上的git协议和生成SSH公钥

概述:如何搭建一个远程仓库?需要哪些准备工作?

1.协议:

Git可以使用四种主要的协议来传输资料:本地协议(Local),HTTP协议,SSH(Secure Shell)协议以及Git协议

1.1本地协议

通过挂载硬盘形成一个共享文件系统

如下命令

克隆一个本地版本库

$ git clone /opt/git/project.git

$ git clone file:///opt/git/project.git

添加一个本地版本库到现有的Git项目中

优点:

简单 

缺点:

共享文件系统比较难以配置,访问速度较网络慢,仓库安全性差

1.2HTTP协议

智能HTTP协议

当前比较流行的,运行方式类似SSH和Git

哑HTTP协议

哑 HTTP 协议里 web 服务器仅把裸版本库当作普通文件来对待,提供文件服务。 哑 HTTP 协议的优美之处在于设置起来简单。 基本上,只需要把一个裸版本库放在 HTTP 根目录,设置一个叫做 post-update 的挂钩就可以了

1.3SSH协议

架设 Git 服务器时常用 SSH 协议作为传输协议。 因为大多数环境下已经支持通过 SSH 访问 —— 即时没有也比较很容易架设。 SSH 协议也是一个验证授权的网络协议;并且,因为其普遍性,架设和使用都很容易。

在SSH协议克隆版本库

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

或者简写

git clone user@server:project.git

优点:

安全

缺点:

太安全

1.4 Git 协议

这是包含在 Git 里的一个特殊的守护进程;它监听在一个特定的端口(9418),类似于 SSH 服务,但是访问无需任何授权。 要让版本库支持 Git 协议,需要先创建一个 git-daemon-export-ok 文件 —— 它是 Git 协议守护进程为这个版本库提供服务的必要条件 —— 但是除此之外没有任何安全措施。

优点:

缺点:

缺乏授权机制,端口固定9418

2.生成SSH公钥

我们需要寻找一对以 id_dsa 或 id_rsa 命名的文件,其中一个带有 .pub 扩展名。 .pub 文件是你的公钥,另一个则是私钥。 如果找不到这样的文件(或者根本没有 .ssh 目录),你可以通过运行 ssh-keygen 程序来创建它们。在 Linux/Mac 系统中,ssh-keygen 随 SSH 软件包提供;在 Windows 上,该程序包含于 MSysGit 软件包中。

语法:

$ ssh-keygen

Administrator@USER-20170424ZG MINGW64 ~ (master)
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):
Created directory '/c/Users/Administrator/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.
Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:V+m6zcqdC/86l3qlWfmv4UcuEY3k62gPFHltKu2Hf78 Administrator@USER-20170424ZG
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|             o.. |
|            =o.oo|
|           o ++o.|
|        S . + oo.|
|         . o ooo+|
|          o .o+Xo|
|         . B++O+=|
|          +oXX=EO|
+----[SHA256]-----+

查询公钥

$ cat ~/.ssh/id_rsa.pub

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDI2f8HRsRd3FUp70uc1dz0S8C4rEkt6VeBBWfVy/eyZGNoL5zB0B3bivPM/tW4p6Z1KZvygl3xaEPmDsheFPdshlFucag64g/xyOb4rOqUthVS7GxJrYJWxUH4dFEyy9Ak/9PQmmTuehqVg9p0pRfYdABvtTzwhDKdUKawDNsQz4IcP4PhstWtQwvFq3qKPRNMKXZafaMliRU8iFNYjqttzjZ81D8xIoXFBQt7xoDiyFf24VGC+293TLjPhMtYDZCD4INTsTLuz43dMwbBJ//8k3fprKISIgLYc4H1rcvUVNWmD2saDqWT81+habi9SlB+VYnvR1bT7W2KWiwboWDx Administrator@USER-20170424ZG


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值