Claves SSH
Administra claves SSH para autenticación segura con proveedores Git y acceso a servidores remotos.
Descripción general
Las claves SSH en sh0 sirven para dos propósitos principales:
- Autenticación con proveedores Git: Clonar repositorios privados desde GitHub, GitLab, Bitbucket o cualquier servidor Git que admita SSH.
- Acceso a servidores remotos: Conectarse a nodos remotos en una configuración multi-servidor vía túneles SSH.
sh0 almacena las claves privadas SSH cifradas en reposo usando AES-256-GCM. Las claves solo se descifran en memoria cuando se necesitan para autenticación.
Generar un par de claves SSH
Si no tienes un par de claves SSH, genera uno con el siguiente comando. sh0 admite claves Ed25519 (recomendado) y RSA.
Ed25519 (recomendado):
ssh-keygen -t ed25519 -C "sh0-deploy-key" -f ~/.ssh/sh0_deployRSA (4096 bits):
ssh-keygen -t rsa -b 4096 -C "sh0-deploy-key" -f ~/.ssh/sh0_deployEsto crea dos archivos:
~/.ssh/sh0_deploy-- la clave privada (mantén esto en secreto)~/.ssh/sh0_deploy.pub-- la clave pública (se puede compartir)
.pub) debe agregarse a los proveedores Git. La clave privada se sube a sh0 para que pueda autenticarse en tu nombre.Agregar claves SSH a sh0
Puedes agregar claves SSH a través del panel de control o la API.
Vía el panel de control:
- Navega a Configuración → Claves SSH.
- Haz clic en Agregar clave SSH.
- Ingresa un nombre descriptivo (por ejemplo, "Clave de despliegue GitHub").
- Pega el contenido de tu archivo de clave privada.
- Haz clic en Guardar.
Vía la API:
curl -X POST https://your-server:9000/api/ssh-keys \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "GitHub Deploy Key",
"private_key": "-----BEGIN OPENSSH PRIVATE KEY-----\\n...\\n-----END OPENSSH PRIVATE KEY-----"
}'Claves SSH para proveedores Git
Para desplegar desde repositorios privados, sh0 necesita una clave SSH que tenga acceso de lectura al repositorio. Así es como configurarla para los proveedores comunes:
GitHub:
- Ve a tu repositorio → Configuración → Claves de despliegue.
- Haz clic en Agregar clave de despliegue.
- Pega el contenido de tu clave pública (archivo
.pub). - Deja "Permitir acceso de escritura" desmarcado (sh0 solo necesita acceso de lectura).
GitLab:
- Ve a tu proyecto → Configuración → Repositorio → Claves de despliegue.
- Agrega una nueva clave de despliegue con tu clave pública.
- Concede acceso de solo lectura.
Bitbucket:
- Ve a tu repositorio → Configuración → Claves de acceso.
- Haz clic en Agregar clave y pega tu clave pública.
Claves SSH para acceso al servidor
Al agregar nodos remotos a una configuración multi-servidor, sh0 usa claves SSH para establecer túneles seguros. La clave debe estar autorizada en el servidor remoto.
- Agrega la clave SSH a sh0 (como se describió anteriormente).
- Copia la clave pública al archivo
~/.ssh/authorized_keysdel servidor remoto:
ssh-copy-id -i ~/.ssh/sh0_deploy.pub deploy@remote-serverAl agregar el nodo en sh0, selecciona esta clave SSH para autenticación. sh0 la usará para establecer el túnel SSH al demonio Docker remoto.
Huellas digitales de claves
Cada clave SSH tiene una huella digital única que puedes usar para verificar su identidad. sh0 muestra la huella digital SHA-256 de cada clave almacenada.
# View the fingerprint of a local key file
ssh-keygen -lf ~/.ssh/sh0_deploy.pubCompara esta huella digital con la que se muestra en el panel de control de sh0 para verificar que subiste la clave correcta.
Administrar múltiples claves
El panel de Claves SSH lista todas las claves almacenadas en sh0. Para cada clave, puedes ver:
- Nombre y huella digital de la clave
- Tipo de clave (Ed25519, RSA)
- Fecha de adición
- Qué aplicaciones o nodos usan la clave
Eliminar claves
Para eliminar una clave SSH de sh0:
- Navega a Configuración → Claves SSH.
- Haz clic en el ícono de eliminar junto a la clave que deseas remover.
- Confirma la eliminación.
curl -X DELETE https://your-server:9000/api/ssh-keys/key_abc123 \
-H "Authorization: Bearer YOUR_TOKEN"