Skip to main content

Utilizar SSH a través del puerto HTTPS

Algunas veces, los firewalls se niegan a permitir conexiones SSH por completo. Si el uso de clonación HTTPS con almacenamiento en caché de credenciales no es una opción, puedes intentar clonar usando una conexión SSH hecha a través del puerto HTTPS. La mayoría de las reglas del firewall deberían permitir esto, pero los servidores proxy pueden interferir.

Warning

Usuarios de GitHub Enterprise Server : actualmente no se admite el acceso a GitHub Enterprise Server por SSH mediante el puerto HTTPS.

Para probar si es posible el SSH a través del puerto HTTPS, ejecuta este comando SSH:

$ ssh -T -p 443 git@ssh.github.com
# Hi USERNAME! You've successfully authenticated, but GitHub does not
# provide shell access.

Si eso funcionó, ¡fantástico! Si no es así, es posible que tenga que seguir nuestra guía de solución de problemas.

Note

El nombre de host del puerto 443 es ssh.github.com, no github.com.

Este artículo contiene comandos o ejemplos que usan el dominio github.com. Puedes acceder a GitHub en un dominio diferente, como octocorp.ghe.com.

Ahora, para clonar el repositorio, puedes ejecutar el siguiente comando:

git clone ssh://git@ssh.github.com:443/YOUR-USERNAME/YOUR-REPOSITORY.git

Habilitar conexiones SSH a través de HTTPS

Si puedes acceder a git@ssh.github.com mediante SSH en el puerto 443, puede reemplazar los valores SSH para forzar que cualquier conexión a GitHub.com se ejecute mediante ese servidor y ese puerto.

Para establecerlo en el archivo de configuración de SSH, edite el archivo en ~/.ssh/config y agregue esta sección:

Host github.com
    Hostname ssh.github.com
    Port 443
    User git

Puedes probar que esto funcione volviéndote a conectar a GitHub.com:

$ ssh -T git@github.com
# Hi USERNAME! You've successfully authenticated, but GitHub does not
# provide shell access.

Actualización de hosts conocidos

La primera vez que interactúes con GitHub después de cambiar al puerto 443, puedes recibir un mensaje de advertencia que indica que no se ha encontrado el host en known_hosts o que se ha encontrado con otro nombre.

# The authenticity of host '[ssh.github.com]:443 ([140.82.112.36]:443)' can't be established.
# ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
# This host key is known by the following other names/addresses:
#     ~/.ssh/known_hosts:32: github.com
# Are you sure you want to continue connecting (yes/no/[fingerprint])?

Es seguro responder "sí" a esta pregunta, suponiendo que la huella digital SSH coincida con una de las huellas publicadas de GitHub. Para ver la lista de huellas digitales, consulta Huellas digitales de la clave SSH de GitHub.