使用Git时使用的公钥是什么?

时间:2011-07-13 08:54:50

标签: git ssh public-key

我对Git和Linux / SSH很天真所以我的问题是公钥是used for是什么?

南。

Update

感谢@emboss,如下面的答案。 我正在寻找的是服务器需要验证git客户端请求来自注册帐户

已注册的是其公钥在服务器列表中的帐户:)

谢谢浮雕!

4 个答案:

答案 0 :(得分:3)

您通常首先向git服务器提供您的公钥(例如,在github中完成 - 首先必须向他们发送您的公钥)。然后,服务器使用它进行身份验证。连接到git服务器后,使用私钥对邮件进行签名。服务器使用您之前提供的公钥(cf. RFC 4252 section 7)验证此消息。如果服务器能够使用您的公钥验证邮件,则可以确定您确实是您声称的那个人。

在服务器端,公钥也用于身份验证。一旦通过SSH连接,服务器通常会将其公钥发送给您(对于RSA cf.例如RFC4432) - 这是当您被要求接受某个公钥指纹时。如果您接受,在此连接和后续连接期间,服务器将使用其私钥对消息进行签名,以生成发送给您的会话密钥(更多内容在此之后)。您尝试使用服务器的公钥来验证此消息,以确保您正在与正确的服务器通信。然后,该消息用于导出在整个会话的其余部分中使用的对称加密密钥。

使用对称密钥进行实际加密的目的仅仅是出于性能原因,对称加密要快得多。这意味着非对称公钥/私钥仅用于身份验证。

答案 1 :(得分:0)

这是您机器上ssh-keygen命令生成的密钥。它有扩展名“.pub”。

答案 2 :(得分:0)

它用于加密您与远程存储库之间的git通信,确保您的推送和拉取数据不会被监视或篡改。

答案 3 :(得分:0)

使用ssh-keygen选项-t创建密钥时,您可以使用RSA或DSA。您可以在Wikipedia

上阅读RSA的工作原理
  

RSA涉及公钥和私钥。公钥可以是   每个人都知道并用于加密消息。消息   使用公钥加密只能使用私钥解密   键。 RSA算法的密钥生成如下   方式:[...]

Here is a a How-To for setup your keys for github: