En ocasiones necesitaremos dar acceso a ciertos recursos en una red desde una máquina de salto ( jumphost, bastion host, stepping stone ), sin que los usuarios tengan una shell interactiva en la misma máquina de salto.

En estos casos podemos utilizar SSH , junto a algunas configuraciones para obtener este resultado.

En primer lugar creamos el usuario de salto, le asignamos una contraseña y le dejamos con una shell restringida, para que en caso de que algo no funcione como debe, el usuario esté completamente aislado del sistema.

useradd jumper --home-dir=/tmp --shell=/bin/rbash

Depués restringiremos sus capacidades también desde el propio servicio de SSH. Añadiremos al fichero /etc/ssh/sshd_config la siguiente sección:

Match User jumper
    AllowAgentForwarding no
    AllowTCPForwarding yes
    X11Forwarding no
    PermitTunnel no
    GatewayPorts no
    ForceCommand echo 'Solo salto! (ssh -J)'

Y reiniciaremos el servicio para aplicar los cambios:

systemctl restart sshd.service

Ahora podremos utilizar este usuario para utilizar la máquina de salto, únicamente compo salto, sin posibilidad de iniciar sesión.

ssh J jumper@bastion usuario@destino