¿Por qué necesitamos keys SSH en git?

Estoy teniendo muy poca o ninguna familiaridad con git. He estado siguiendo un tutorial y allí la persona genera ssh keys, este fue mi primer encuentro con él. Antes de eso, estaba siguiendo el command escrito en el git o añadiéndolo directamente por JetBrains ide. Sé que debería estar encriptando la connection, pero al uploadla a GitHub, significa que estoy haciendo público mi código. Entonces, ¿por qué el encryption? ¿Por qué resolver todos estos problemas en cmd?

¿Por qué necesitamos keys SSH en git?

Las keys SSH identifican al usuario que está interactuando con el repository remoto de git.

Sé que debería estar encriptando la connection, pero al uploadla a GitHub, significa que estoy haciendo público mi código.

No necesariamente, hay repositorys privados en GitHub. Además, hay otros proveedores de hosting también.

¿Por qué resolver todos estos problemas en cmd?

Con la authentication SSH, no necesita ingresar sus cnetworkingenciales cuando interactúa con el control remoto.