我对Git和Linux / SSH很天真所以我的问题是公钥是used for
是什么?
南。
Update
感谢@emboss,如下面的答案。 我正在寻找的是服务器需要验证git客户端请求来自注册帐户
已注册的是其公钥在服务器列表中的帐户:)
谢谢浮雕!
答案 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算法的密钥生成如下 方式:[...]