Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Git时使用的公钥是什么?_Git_Ssh_Public Key - Fatal编程技术网

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

使用Git时使用的公钥是什么?,git,ssh,public-key,Git,Ssh,Public Key,我对Git和Linux/SSH很幼稚,所以我的问题是什么是用于的公钥 南 更新 感谢@emboss提供以下答案。 我要寻找的是服务器需要验证git客户端请求是否来自注册帐户 A已注册的帐户是其公钥位于服务器列表中的帐户:) 谢谢你的浮雕 它是由机器上的ssh-keygen命令生成的密钥。它有扩展名“.pub”。它用于加密您与远程存储库之间的git通信,确保推拉数据不会被监视或篡改。在使用-t选项创建密钥时,可以使用RSA或DSA。RSA的工作原理您可以继续阅读 RSA包含一个公钥和一个私钥。公钥

我对Git和Linux/SSH很幼稚,所以我的问题是什么是用于的公钥

更新

感谢@emboss提供以下答案。 我要寻找的是服务器需要验证git客户端请求是否来自注册帐户

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


谢谢你的浮雕

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

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

在使用
-t
选项创建密钥时,可以使用RSA或DSA。RSA的工作原理您可以继续阅读

RSA包含一个公钥和一个私钥。公钥可以是 众所周知,用于加密消息。信息 使用公钥加密只能使用私钥解密 钥匙RSA算法的密钥生成如下 方式:[……]


您通常首先向git服务器提供您的公钥(例如,在github中,您必须首先向他们发送您的公钥)。然后,服务器将使用它进行身份验证。一旦连接到git服务器,就可以使用私钥对消息进行签名。此消息由服务器使用以前提供的公钥()进行验证。如果服务器能够使用您的公钥验证消息,则可以确保您确实是您声称的那个人

在服务器端,公钥还用于身份验证目的。一旦您通过SSH连接,服务器通常会将其公钥发送给您(对于RSA,请参阅,例如)-这是当您被要求接受某个公钥指纹时。如果您接受,在此连接和后续连接期间,服务器将使用其私钥对消息进行签名,以生成正在发送给您的会话密钥(第二节将详细介绍)。您尝试使用服务器的公钥来验证此邮件,以确保您与正确的服务器进行了对话。然后,该消息用于派生对称加密密钥,以便在会话的其余部分中使用


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

听起来很有趣。你能告诉我更多的细节或者给我一些URL/参考吗?@Michael:实际的加密是用对称会话密钥完成的,不是吗?@emboss:正确,但这些首先用公钥/私钥加密;我不想太技术化。我知道它是什么,但不知道它是用来做什么的。谢谢你的回答。它被其他服务器用来检查你的身份。你知道一辆车是什么,但不知道它是用来干什么的吗?@Skog是的,我的情况是-我知道一辆车是什么,但是当一辆车在一场表演中使用时,我有一个问题
这辆车在这个表演中是用来干什么的?
;当然,我知道汽车是用来四处走动的,但在一场表演中,那该去哪里呢?希望我能让你明白谢谢你对RSA的解释。它完全理解它——只是不理解它是如何在我和存储库服务器之间的
Git
事务中使用的。是的,你说得对,我解释了如何使用它,但没有真正解释什么。使用此身份验证机制1。您不必每次都输入用户/密码(只需设置一次私钥)和2。当你的钥匙足够大的时候,安全性会更好。你找到我了,我找到了。谢谢!它在你的链接
。。。私钥的拥有作为身份验证。此方法通过发送使用用户私钥创建的签名来工作。服务器必须检查密钥是否是用户的有效身份验证器,并且必须检查签名是否有效。如果两者都成立,则必须接受认证请求;否则,它必须被拒绝…
@Nam:不客气!对不起,我不明白。你在问如何做到这一点?