Jump host vs bastion host: ¿cuál es la diferencia?

Un jump host es cualquier servidor por el que pasas para llegar a otro, por ejemplo con ssh -J. Un bastion host es un jump host creado solo para esa tarea: expuesto a internet, única entrada a una red privada, endurecido y con registros. Todo bastión es un jump host, pero un jump host no es un bastión hasta que lo blindas. Con ProxyJump, tu sesión va cifrada desde tu equipo hasta el destino y tus claves nunca quedan en el servidor intermedio.

Actualizada el . ssh -J, ProxyJump en la configuración, ProxyCommand con ssh -W, una cadena de dos saltos con -J y ssh -G se ejecutaron con OpenSSH 10.0 en Debian 13 en contenedores desechables: un cliente, un jump host y un destino privado.

La diferencia en una tabla

Jump hostBastion host
Qué describe el términoUn papel: un servidor por el que pasasUna máquina creada solo para ese papel
Dónde estáEn cualquier sitio: una máquina de desarrollo, una VM de administración, otro servidorEn el borde, accesible desde internet o desde la oficina
Qué más se ejecuta en élA menudo otros serviciosNada más que SSH
Quién puede entrarCualquiera con una cuentaUsuarios con nombre, a menudo solo con reenvío y sin shell
Servidores privadosNormalmente accesibles también de otras formasSolo aceptan SSH desde el bastión
RegistrosLo que guarde el servidorCada conexión registrada, con los registros fuera de la máquina

Así que la pregunta no es cuál elegir. Un bastión es un jump host convertido en la única puerta de entrada y protegido como tal. Otros nombres para lo mismo son jump server, jump box y pasarela SSH.

Cómo pasa SSH a través de uno u otro

Desde tu lado, la conexión es igual en ambos casos. Hay dos formas buenas y una que conviene evitar:

# ProxyJump, OpenSSH 7.3 and later
ssh -J user@bastion user@10.0.0.5

# ProxyCommand with -W, the older equivalent
ssh -o ProxyCommand="ssh -W %h:%p user@bastion" user@10.0.0.5

# Two separate logins: avoid
ssh -A user@bastion
ssh user@10.0.0.5

Con las dos primeras, el jump host solo abre una conexión TCP hacia el destino y reenvía los bytes. Tu sesión SSH con 10.0.0.5 va cifrada desde tu equipo, y tu clave se usa desde tu equipo. Con la tercera, obtienes una shell en el jump host y lanzas un nuevo ssh desde allí, así que o tu clave privada está en esa máquina o tu agente se reenvía hasta ella. Cualquiera con root en esa máquina puede entonces usarla.

Las formas para el archivo de configuración, los saltos múltiples y las opciones que no llegan al jump host están en ProxyJump y jump host con ejemplos.

¿ProxyJump o ProxyCommand?

Usa ProxyJump cuando el salto es un servidor SSH. Es más corto, se encadena con comas y cada salto es un Host normal con su propio usuario, puerto y clave:

ssh -J bastion-eu,admin-gw db-internal

Usa ProxyCommand cuando la entrada no es SSH simple: un proxy HTTP o SOCKS a través de nc, o la herramienta de línea de comandos de un proveedor cloud que abre la sesión por ti. ssh ejecuta el comando y se comunica con su entrada y salida estándar.

Las dos opciones compiten: gana la que se define primero, y un -o en la línea de comandos va antes que el archivo de configuración. Para saber cuál se aplica a un host, pregúntale a ssh:

ssh -G db-internal | grep -i '^proxy'
proxyjump bastion-eu,admin-gw

Qué convierte un jump host en un bastión

  • Una sola tarea. Un servidor pequeño con SSH y nada más: sin base de datos, sin web, sin herramientas de compilación.
  • La única puerta. Los servidores privados aceptan el puerto 22 solo desde la dirección del bastión, en el firewall o en el grupo de seguridad.
  • Sin claves en él y sin agent forwarding. Los usuarios pasan a través de él con ProxyJump.
  • Solo reenvío. La mayoría de los usuarios no necesita una shell en él. Un bloque Match Group con PermitOpen limita a dónde pueden ir.
  • Acceso fuerte. Solo claves y, si quieres, un segundo factor con TOTP.
  • Registros guardados en otro sitio. Los registros de conexión salen de la máquina, para que un intruso no pueda borrarlos.
  • Actualizado a menudo. Está expuesto a internet, así que las actualizaciones de seguridad se instalan solas.

La configuración completa de sshd, con los comandos para comprobar qué se rechaza, está en cómo configurar un bastion host SSH.

¿Sigues necesitando un bastión?

Un bastión resuelve un solo problema: que la gente llegue a los servidores privados por una única entrada vigilada. Otras herramientas resuelven lo mismo de otra manera:

  • Una VPN o una red privada superpuesta pone tu equipo en la red privada, y te conectas a los servidores directamente.
  • El servicio de sesiones de un proveedor cloud abre una shell o un túnel a través de la API del proveedor, sin ningún puerto SSH abierto.
  • Un proxy de acceso basado en identidad comprueba quién eres en cada conexión y graba las sesiones en un solo lugar.

Cada uno traslada la única puerta a otro sitio. El bastión sigue siendo la opción más sencilla cuando quieres OpenSSH tal cual, sin agentes en los servidores y sin otro servicio que mantener.

Preguntas

¿Un jump server y un bastion host son lo mismo?

En el uso diario, casi siempre sí, y jump box significa lo mismo. En sentido estricto, jump server o jump host describe el papel, hacerte pasar, mientras que bastión se refiere a una máquina endurecida en el borde de la red cuya única función es esa.

¿Puede el bastión leer mi sesión SSH?

No con ProxyJump o ProxyCommand ssh -W. Solo reenvía el flujo cifrado, así que ve quién se conectó, cuándo y a qué dirección y puerto. Solo puede leerlo todo si abres una shell en él y vuelves a lanzar ssh desde allí.

¿Debo usar agent forwarding a través de un bastión?

No. Usa ProxyJump. Con ssh -A hacia el bastión, cualquiera con root en él puede usar tus claves mientras estés conectado. Consulta los riesgos del agent forwarding.

¿Necesito un bastión si ya tengo una VPN?

No siempre. Una VPN o una red privada superpuesta puede sustituirlo como puerta de entrada. Muchos equipos mantienen igualmente un bastión como único punto de acceso SSH, porque una sola máquina es fácil de vigilar, registrar y cerrar.

Fuentes

Más en Túneles y jump hosts

Todas las guías