如何在Github上运行公钥加密?

Aca*_*uza 5 git cryptography github public-key

在公钥加密中生成一对密钥,一个私有密钥,一个私有密钥,我放入Github的公共密钥.

私钥解密数据,公钥加密数据.这意味着当我向github发送数据时,这个数据没有加密,因为只有私钥解密数据?

更新:

谢谢你们,我现在明白了.

当我发送推/拉时,我正在考虑在github中以这种方式对我的数据进行加密.此案例用于登录/验证/签名.这与SSH连接设置为发送我的数据的加密传输流完全不同.

感谢大家的回应...

Kin*_*nch 8

没错,但错了.(a)私钥解密由公钥加密的数据,以及(b)公钥解密由私钥加密的数据.

(a):每个人都可以加密某些东西,但只有私钥的所有者才能对其进行解密.

(b):所有者用他的私钥"加密"一些东西,每个人都可以解密它,确保它真正是所有者,加密数据而不是其他人.

git(hub)使用第二种方案:如果你推送一些内容,它就会用你的私钥签名.接收器现在验证签名,再次识别它知道的公钥.如果匹配,一切都很好.

更新:关于发生了什么的一个(也许是)简化的描述(当使用带有ssh的github时)

  • Github向你发送一些随机的东西,用他的 _private_密钥加密(也许它不是随机的,我不知道,但这里无关紧要)
  • 你收到它并用他的 _public_密钥解密它.如果这是可能的,你确定,你真的在​​和官方的github服务器交谈
  • 然后,您发送加密使用相同的随机的东西 _private_关键GitHub的服务器
  • 他试图用你的 _public_密钥加密它.如果这是可能的,以及他之前寄给你的随机东西,他肯定知道你是你.
  • 然后你发送用他的 _public_密钥加密的东西.现在只有github服务器可以解密.此外,他将与加密的消息/数据回答您的 _public_关键,因为只有你可以解密.

即使它不完全正确,也应该描述这个想法.