Guía de Git: Configurar el acceso a repositorios privados
Descripción
Este documento explica cómo habilitar acceso por SSH para poder clonar y trabajar con repositorios privados desde una cuenta de cPanel. El flujo consiste en crear un par de claves, registrar la clave pública en el proveedor del repositorio privado y ajustar la configuración SSH local para usar esa clave.
Nota:
En los ejemplos se utiliza GitHub, pero el procedimiento es prácticamente igual para otros proveedores.
Requisitos
- Cuenta de cPanel con espacio en disco disponible.
- Funciones Acceso SSH y Terminal habilitadas en tu cPanel.
- Capacidad de conectarte por SSH o usar el Terminal de cPanel.
Paso 1 Conectarse por SSH o abrir el Terminal de cPanel
- Si usas SSH desde tu equipo, conecta contra el servidor de tu cuenta.
- Si prefieres el Terminal integrado, abre
cPanel → Avanzado → Terminal
.
Una vez dentro, todos los comandos de este tutorial se ejecutan ahí.
Paso 2 Generar una clave SSH específica para el repositorio privado
Crea una clave RSA 4096 sin passphrase para usarla como clave de despliegue o de acceso al remoto.
ssh-keygen -t rsa -b 4096 -f ~/.ssh/NOMBRE_CLAVE -C "USUARIOCP@DOMINIOCP"
- Sustituye:
NOMBRE_CLAVE
por algo que identifique el repo, por ejemplotesting
.USUARIOCP
por tu usuario de cPanel.DOMINIOCP
por tu dominio en cPanel.
Ejemplo:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/testing -C "usuariocp@cptest.tld"
Detalle de parámetros:
-t tipo de clave, -b tamaño, -f ruta base de los ficheros .pub y privado, -C comentario para identificar la clave.
Cuando pida passphrase, déjala vacía y pulsa Enter.
Paso 3 Crear y asegurar el archivo de configuración SSH
Crea el archivo ~/.ssh/config
, aplica permisos correctos y ajusta propietario.
touch ~/.ssh/config
chmod 0600 ~/.ssh/config
chown USUARIOCP:USUARIOCP ~/.ssh/config
Abre ~/.ssh/config
con tu editor y añade una entrada que asocie el host remoto con la clave privada creada.
Ejemplo para un único repositorio privado en un dominio concreto:
Host github.com
IdentityFile ~/.ssh/testing
Host
puede ser un dominio concreto del proveedor.- También puedes usar
*
para aplicar esa clave a cualquier host, aunque no es lo recomendable si gestionarás varias claves. - Asegúrate de que
IdentityFile
apunta al fichero privado que generaste en el paso anterior.
Guarda el archivo.
Paso 4 Registrar la clave pública en el proveedor del repositorio privado
Localiza tu clave pública y cópiala al portapapeles:
cat ~/.ssh/testing.pub
Ejemplo en GitHub
- Inicia sesión en GitHub.
- Entra al repositorio privado.
- Abre Settings del repositorio.
- En el menú lateral, ve a Deploy keys.
- Pulsa Add deploy key.
- Título descriptivo y pega el contenido completo de
~/.ssh/testing.pub
en Key. - Si vas a empujar cambios desde cPanel hacia GitHub, marca Allow write access. Si no lo marcas, la clave servirá solo para lectura y despliegue.
- Guarda con Add key.
Paso 5 Probar la clave SSH
Comprueba que la autenticación funciona contra el proveedor.
ssh -i ~/.ssh/testing -T git@github.com
- Cambia la ruta de la clave y el dominio según tu caso.
- Un mensaje de bienvenida o confirmación sin error indica que la clave está aceptada.
Paso 6 Preparar acceso a varios repositorios con alias
Si gestionas varias claves, crea una por repo y define alias en ~/.ssh/config
para distinguirlas.
Ejemplo con dos repos en GitHub, testing
y testing2
:
Host github.com-testing
HostName github.com
IdentityFile /home/cptest/.ssh/testing
Host github.com-testing2
HostName github.com
IdentityFile /home/cptest/.ssh/testing2
HostName
es el dominio real.Host
es el alias que usarás en las URLs SSH.
Paso 7 Clonar repositorios privados usando la clave
Caso con un único repositorio en el host
Cuando solo usas una clave para ese host, puedes clonar directamente con el dominio del proveedor.
git clone git@github.com:USUARIOREMOTE/REPO.git
Ejemplo:
git clone git@github.com:cptest/testing.git
Caso con múltiples repos y alias definidos
Usa el alias configurado en Host
para que Git seleccione la clave adecuada.
git clone git@ALIAS:USUARIOREMOTE/REPO.git
Ejemplo usando el alias del ejemplo anterior:
git clone git@github.com-testing2:cptest/testing2.git
Consejos de operación y seguridad
- Mantén permisos estrictos en
~/.ssh
:~/.ssh
con700
, claves privadas con600
,config
con600
.
- Evita compartir la clave privada y realiza rotación periódica si personal externo tuvo acceso.
- Para despliegues automatizados, emplea claves de solo lectura cuando sea posible.
- Documenta qué claves están autorizadas en cada repositorio y quién es responsable.