Comandos SSH
Deja que un agente ejecute comandos por SSH en un servidor público mientras Sallyport guarda la clave privada.
En esta página
El agente envía un comando. Sallyport entra con tu clave o contraseña, lo ejecuta y devuelve la salida. El agente no ve ninguna de las dos.
Añade el host
- Abre Conectar un host SSH. Desde Claves es Añadir una clave y luego Host SSH en Origen de la clave.
- Escribe un Nombre de la conexión. Los agentes lo ven, y la herramienta del host lleva ese nombre.
- Escribe el Nombre de host público o dirección IP, el Puerto SSH y el Usuario SSH. El puerto es 22 salvo que lo cambies.
- Elige el Espacio de trabajo si tienes más de uno, y el Entorno: Producción o Pruebas.
- En Iniciar sesión con, deja Clave privada y pega la Clave privada OpenSSH. Si la clave tiene frase de contraseña, escríbela en Frase de contraseña de la clave (opcional).
- Un servidor que no acepta clave, como un hosting compartido, un router o un dispositivo: elige Contraseña y escribe la Contraseña SSH. Sallyport responde con ella tanto a la petición de contraseña como a la petición interactiva del servidor.
- Pulsa Guardar conexión SSH. La clave solo se escribe, y nadie puede volver a leerla.
Sallyport comprueba la dirección al guardar. Se rechaza una dirección privada o una que apunte al propio Sallyport.
Comprueba la identidad del servidor
Verificación de la clave del host (opcional) ofrece dos opciones.
| Opción | Qué pasa |
|---|---|
| Fijar la primera clave tras una autenticación SSH correcta | La opción por defecto. Sallyport guarda la huella de la clave del servidor en el primer acceso correcto y rechaza cualquier cambio posterior. |
| Exigir una huella que he verificado | Pega la huella SHA256: que te dio el dueño del servidor en Huella SHA-256 del host verificada. Sallyport solo se conecta a un servidor con esa clave. |
La página de la conexión muestra la huella en Verificación de la clave del host. Si la clave del servidor cambia, las llamadas se detienen con host_key y no se ejecuta ningún comando.
Primero confirma la clave nueva con el dueño del servidor. Después abre la página de la conexión, pulsa Reemplazar la clave fijada en Verificación de la clave del host, pega la huella SHA256: nueva y pulsa Fijar esta clave. Las aprobaciones dadas para la clave anterior dejan de valer. Un script hace lo mismo con una clave de consola (API REST): GET /v1/ssh-hosts lista tus hosts con su id, y PATCH /v1/ssh-hosts/{id} con known_host_key fija la clave nueva.
export SP_CONSOLE_KEY='sp_ck_…'
curl --fail-with-body -H "Authorization: Bearer $SP_CONSOLE_KEY" \
https://mcp.sallyport.cloud/v1/ssh-hosts
curl --fail-with-body -X PATCH -H "Authorization: Bearer $SP_CONSOLE_KEY" \
-H 'Content-Type: application/json' \
-d '{"known_host_key": "SHA256:<new fingerprint>"}' \
"https://mcp.sallyport.cloud/v1/ssh-hosts/<host-id>"Elige qué comandos te esperan
La conexión nueva llega a cada agente activo de su espacio de trabajo y su entorno. Por defecto, los comandos se ejecutan sin preguntar.
Para aprobar comandos, abre el agente en Agentes, busca la conexión en su lista Acceso y activa Preguntar en cada llamada. O ajusta una clase cada vez:
- Lectura: comandos simples de lectura de una lista fija, como
ls,cat,tail,git status,docker psykubectl get. - Destructiva: comandos como
rm,dd,mkfs,kubectl deleteydocker system prune. - Escritura: todo lo demás. Una tubería,
;, una redirección,$, un comodín,sudoosh -cconvierten un comando en escritura, aunque solo lea.
La tarjeta de aprobación muestra el host y el comando exacto. Se ejecuta ese comando, byte a byte.
Ejecuta un comando
El agente mantiene su conexión MCP con Sallyport. list_access nombra la herramienta del host, que termina en _exec. La herramienta acepta estos argumentos:
| Argumento | Significado |
|---|---|
cmd | El comando completo, como lo escribirías en una terminal. Obligatorio. |
timeout_s | Detiene el comando tras estos segundos. Un comando se detiene a los 5 minutos en cualquier caso. |
intent | Una frase sobre el motivo, que ve la persona que aprueba. |
call_id | Continúa una llamada que espera aprobación. |
max_inline_bytes | Cuánta salida llega en la respuesta. 24 KiB por defecto. |
{
"cmd": "df -h",
"intent": "Check free disk space before the deploy"
}Cuando el agente tiene un host SSH, también recibe ssh_exec. Acepta los mismos argumentos más host. Un host fuera de la lista del agente devuelve un enlace donde concedes el acceso.
El mismo host da al agente sus archivos: _sftp_read y _sftp_write los listan, leen, escriben, renombran y eliminan por SFTP, con esta clave y esta clave de host. Consulta Archivos por SFTP.
Lee el resultado
- La respuesta trae
exit_code,stdoutystderr. La salida que no es UTF-8 llega comostdout_base64ostderr_base64. - La salida larga se corta en
max_inline_bytes, yfetch_bodylee el resto. Un comando puede imprimir hasta 512 MiB. - Un comando no recibe terminal ni entrada. Usa opciones que salten las preguntas, como
apt-get -y. - Abre la llamada en Actividad para ver Resultado del comando SSH: el destino, Código de salida, Huella de la clave del host y el tamaño de la salida.