¿Cómo funciona la cryptography de key pública en Github?

En la cryptography de key pública se genera un par de keys, una privada y una pública, el público que pongo en el Github.

La key privada descifra los datos y la key pública encripta los datos. Esto significa que cuando envié datos a Github, estos datos no están encriptados porque solo la key privada descifra los datos.

Actualizar:

Gracias chicos, estoy entendiendo ahora.

Estoy pensando que mis datos se codifican de esa manera en github cuando envío push / pulls. Este caso se usa para iniciar session / verificar / firmar. Eso es completamente diferente de la secuencia de transmisión encriptada que establece la connection SSH para enviar mis datos.

Gracias a todos por sus respuestas…

No está mal en absoluto, pero está mal. (a) La key privada descifra los datos encriptados por la key pública y (b) la key pública descifra los datos encriptados por la key privada.

(a): Todo el mundo puede encriptar algo, pero solo el propietario de la key privada puede descifrarlo.

(b): el propietario "encripta" algo con su key privada y todo el mundo puede descifrarlo, lo que asegura, que realmente era el propietario, que encripta los datos y no a otra persona.

git (hub) hace uso del segundo escenario: si empujas algo, está firmado con tu key privada. El receptor ahora valida la firma con la key pública que conoce de usted. Si coincide, todo está bien.

Actualización: Una descripción (quizás demasiado) simplificada de lo que sucede (cuando se usa github con ssh)

  • Github te envía algo aleatorio, que está encriptado con su key _private_ (Tal vez no es tan aleatorio, no lo sé, pero no importa aquí)
  • Lo recibes y lo descifras con su _public_ key. Si esto es posible, está seguro de que realmente está hablando con el server oficial de Github
  • Luego, envía el mismo material aleatorio encryption con su key _private_ al server github
  • Él trata de encriptarlo con tu _public_ key. Si esto es posible y es algo aleatorio que te ha enviado antes, él lo sabe con certeza, que eres tú.
  • Luego, le envía cosas cifradas con su _public_ key. Ahora solo el server github puede descifrar. También responderá con posts / datos encryptions con su _public_ key, porque solo usted puede descifrarlos.

Incluso si no es completamente correcto, debería describir la idea.

Una gran simplificación es que cuando tratas de empujar algo, GitHub te envía un desafío al encriptar algunas cosas random con tu key pública y ver si puedes descifrarla o no, lo cual solo podrás hacer si tienes el service privado. llave.