SSH es la herramienta estándar para el acceso cifrado a sistemas remotos. SSH te permite iniciar sesión en un servidor desde otro equipo. Git utiliza SSH como protocolo de transferencia y permite el acceso de lectura y escritura a los repositorios remotos.
Se utiliza una conexión encriptada para permitir la autenticación de la máquina y garantizar que los datos transmitidos no puedan ser falsificados. Sin esto, sería posible que personas no autorizadas hicieran cambios arbitrarios en los repositorios.
Git vía SSH utiliza cifrado asimétrico como método de encriptación. En primer lugar, se crean un par de claves privadas y públicas. También se denomina “Public-Private Keypair”. La clave privada permanece en el propio ordenador del usuario. La clave pública se comparte con terceros, por ejemplo, GitHub.
Si utilizas una clave SSH para acceder a los repositorios de GitHub, no necesitas introducir una contraseña. En general, el inicio de sesión sin contraseña se considera más seguro, ya que los keyloggers o troyanos no pueden capturar ninguna contraseña. En lugar de que una persona conozca la contraseña, se autentifica una máquina en la que se almacena la clave privada.
El uso de Git a través de SSH es extremadamente práctico. Una vez configurada, la clave SSH permite el acceso permanente a GitHub sin más intervención. Otros protocolos y servicios también se benefician de las claves SSH para una conexión de red encriptada. Además de Git vía SSH, se puede utilizar el protocolo seguro SFTP para intercambiar archivos con los servidores sin necesidad de ninguna otra configuración.
La conexión a los repositorios Git se realiza normalmente desde la línea de comandos. Si has configurado una clave SSH, puedes realizar un push al propio repositorio sin problemas: