remote - ¿Por qué GitHub recomienda HTTPS sobre SSH?
git push (7)
Habilitar las conexiones SSH a través de HTTPS si está bloqueado por un firewall
Pruebe si SSH sobre el puerto HTTPS es posible, ejecute este comando SSH:
$ ssh -T -p 443 [email protected]
Hi username! You''ve successfully authenticated, but GitHub does not
provide shell access.
Si eso funcionó, ¡genial! Si no es así, es posible que deba seguir nuestra guía de solución de problemas .
Si puede SSH en [email protected]
través del puerto 443 , puede anular la configuración de SSH para forzar que cualquier conexión a GitHub se ejecute a través de ese servidor y ese puerto.
Para configurar esto en su configuración ssh, edite el archivo en ~/.ssh/config
, y agregue esta sección:
Host github.com
Hostname ssh.github.com
Port 443
Puede probar que esto funciona conectándose una vez más a GitHub:
$ ssh -T [email protected]
Hi username! You''ve successfully authenticated, but GitHub does not
provide shell access.
Desde la https://help.github.com/articles/using-ssh-over-the-https-port/
En el sitio de GitHub hay un enlace ...
https://help.github.com/articles/generating-ssh-keys
... y dice ...
Si ha decidido no utilizar el método HTTPS recomendado, podemos usar las claves SSH para establecer una conexión segura entre su computadora y GitHub. Los pasos a continuación lo guiarán para generar una clave SSH y luego agregar la clave pública a su cuenta de GitHub.
¿Por qué es HTTPS el método recomendado? ¿Hay algún tipo de falla de seguridad en el método SSH o es más lento? Creé una clave SSH, ¿eso mitigaría cualquier inquietud de seguridad?
¿Quizás porque es más difícil robar una contraseña de su cerebro que robar un archivo clave de su computadora (al menos que yo sepa, tal vez ya existan algunas sustancias o métodos pero esta es una discusión infinita)? Y si protege con contraseña la clave, entonces está usando una contraseña nuevamente y surgen los mismos problemas (pero algunos podrían argumentar que tiene que hacer más trabajo, porque necesita obtener la clave y luego descifrar la contraseña).
Es posible argumentar que usar la clave SSH para autenticarse es menos seguro porque tendemos a cambiar nuestra contraseña más periódicamente que generamos nuevas claves SSH.
Los servidores que limitan la vida útil por la que cumplen las claves SSH dadas pueden ayudar a los usuarios a practicar la actualización de las claves SSH periódicamente.
GitHub ha cambiado su recomendación varias veces ( example ).
Parece que actualmente recomiendan HTTPS porque es el más fácil de configurar en la gama más amplia de redes y plataformas, y por usuarios que son nuevos en todo esto.
No hay una falla inherente en SSH (si la hubiera, desactívela). En los enlaces a continuación, verá que todavía proporcionan detalles sobre las conexiones SSH también:
HTTPS es menos probable que sea bloqueado por un firewall.
https://help.github.com/articles/which-remote-url-should-i-use/
Las URL de clonación https: // están disponibles en todos los repositorios, públicos y privados. Estas URL funcionan en todas partes, incluso si se encuentra detrás de un firewall o proxy.
Una conexión HTTPS permite
credential.helper
para almacenar en caché su contraseña.https://help.github.com/articles/set-up-git
Es bueno saberlo: el ayudante de credenciales solo funciona cuando se clona una URL de repositorio HTTPS. Si en su lugar usa la URL de repositorio de SSH, las claves de SSH se usan para la autenticación. Si bien no lo recomendamos, si desea utilizar este método, consulte esta guía para obtener ayuda sobre cómo generar y utilizar una clave SSH.
Github recomienda HTTPS porque es un puerto que está abierto en todos los firewalls. SSH no siempre está abierto como un puerto para la comunicación en una red y, a menudo, está bloqueado por cortafuegos de red.
Por lo tanto, un repositorio de Github es más accesible universalmente utilizando HTTPS que SSH.
Las claves SSH son más seguras porque no brindan acceso a su cuenta de Github, aunque si alguien obtiene su clave privada, puede forzar un depósito vacío y borrar su historial de cambios.
Mi preferencia es usar SSH con una clave protegida por frase de contraseña. SSH se puede canalizar a través de HTTPS si la red en la que se encuentra bloquea el puerto SSH.
https://help.github.com/articles/using-ssh-over-the-https-port/
Si usa HTTPS, recomendaría agregar autenticación de dos factores para proteger su cuenta y sus repositorios.
O bien estás citando mal o github tiene diferentes recomendaciones en diferentes páginas o puede que aprendan con el tiempo y actualicen su recuperación.
Recomendamos encarecidamente utilizar una conexión SSH al interactuar con GitHub. Las claves SSH son una forma de identificar computadoras confiables, sin involucrar contraseñas. Los pasos a continuación lo guiarán para generar una clave SSH y luego agregar la clave pública a su cuenta de GitHub.
También vea: el oficial ¿Qué URL remota debo usar? responder en help.github.com.
EDITAR:
Parece que ya no es necesario tener acceso de escritura a un repositorio público para usar una URL de SSH, lo que hace que mi explicación original no sea válida.
ORIGINAL:
Al parecer, la razón principal para favorecer las URL de HTTPS es que las URL de SSH no funcionarán con un repositorio público si no tiene acceso de escritura a ese repositorio.
Sin embargo, se recomienda el uso de direcciones URL de SSH para la implementación en servidores de producción; presumiblemente, el contexto aquí es servicios como Heroku.