¿Cómo usar git con ssh en las direcciones de repository github https?

Quiero clonar algunos repositorys de Github en computadoras que solo tienen acceso a github a través de un túnel SSH.

Puedo usar las direcciones ssh para clonar repositorys simples sin problemas.

Cuando un repository contiene submodules, el método de acceso lo controlan los .gitsubmodules que a menudo .gitsubmodules las direcciones https por defecto (ya que .gitsubmodules lo recomienda).

¿Hay alguna manera de decirle a los submodules de Git que siempre debe usar el acceso ssh, incluso cuando la dirección de un submodule es una dirección https?

Tener que clonar un repository y modificar sus .gitsubmodules solo para poder clonarlo a través de un túnel ssh parece retrasado. La encoding del método de acceso en un file .gitsubmodules lugar de permitir que los usuarios elijan el método adecuado parece bastante lenta. Supongo que debe haber una mejor manera, pero no puedo encontrarlo.

Puedes usar git para reescribir las urls

 git config --global url."https://".insteadOf git:// 

Puede include un nombre de host en la expresión para restringir la reescritura a un host específico

  git config --global url."https://github.com".insteadOf git://github.com 

Si no quiere que las reglas de reescritura sean globales, solo agréguelo a su scope local.

Consulte más información en la url.<base>.insteadOf sección url.<base>.insteadOf en http://git-scm.com/docs/git-config

Cambiar los valores en .gitmodules es una forma común de cambiar el protocolo para los submodules seguido de una git submodule sync para actualizar las ubicaciones remotas del repository.