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.
cPanel → Avanzado → Terminal.
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"
NOMBRE_CLAVE por algo que identifique el repo, por ejemplo testing. 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.
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. * para aplicar esa clave a cualquier host, aunque no es lo recomendable si gestionarás varias claves. IdentityFile apunta al fichero privado que generaste en el paso anterior.
Guarda el archivo.
Localiza tu clave pública y cópiala al portapapeles:
cat ~/.ssh/testing.pub
~/.ssh/testing.pub en Key.
Comprueba que la autenticación funciona contra el proveedor.
ssh -i ~/.ssh/testing -T git@github.com
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.
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
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
~/.ssh:
~/.ssh con 700, claves privadas con 600, config con 600.