Prácticamente es cuando envías algo codificado también envías una llave privada y solo quien tiene la llave privada y la dirección del mensaje puede ver el mensaje.
Cuando te conectaste a Github pusiste tu contraseña y tu correo, pero al hacerlo hay dos problemas:
Por esto debemos de agregar una capa de seguridad más fuerte
En tu computadora vas a crear una llave privada y una llave pública.
Una vez creadas mandas la llave pública a Github.
Le dices a Github que para 'éste' repositorio quiero que tenga 'ésta' llave pública de mi llave privada, que va a seguir siendo privada en mi computador.
Y lo conectas por un protocolo nuevo llamado Secure Shell, o SSH.
SSH es el protocolo para conectarse a servidores remotos, que son otras computadoras que queramos controlar remotamente por consola.
En la primera conexión, Github verá que le mandaste tu llave pública y que tienes tu la llave privada, y te mandará su llave pública en Github de manera cifrada, con SSH. Github se queda con su llave privada.
Automáticamente, cuando recibas la llave se va a conectar con tu llave privada.
Como tu tienes tu llave privada y la llave pública de Github, y Github tiene tu llave pública y su propia llave privada, la comunicación estará completamente cifrada por SSH.
Incluso a la llave privada se le puede poner una contraseña en sima.
Puedes cifrar tu discoduro con bitlocker, en Windows Professional, en mac con opcion, con Linux, en un curso de Linux.