Convenientemente SSH a los hosts internos?

1

Recientemente descubrí que con ~/.ssh/config, Puedo guardar una gran cantidad de pulsaciones de teclas y automatizar largas líneas de comando, especificando muchos valores predeterminados por host. Ahora que me di cuenta de lo poderosa que puede ser la herramienta, me pregunto si puede adaptarse a otro de mis casos de uso.

Tengo acceso a dos hosts, bastion y wikispy. Bastion tiene una IP externa, wikispy Solo es visible desde el interno. Esto significa que normalmente para conectarse a wikispy, Necesito ssh para bastion primero y luego llamar ssh wikispy. Obviamente, las cosas como el reenvío de puertos se van a complicar de esta manera y esto es algo que me gustaría evitar.

Esto lleva a una pregunta: ¿puedo hacer de alguna manera ~/.ssh/config entrada que dirá "cuando el usuario solicite el host etiquetado wikispy, en realidad conectarse a bastion, luego llame ssh wikispy "¿Sería posible trabajar de forma transparente para poder llamar a cosas como ssh wikispy -L 9999:localhost:9999 y tiene bastion reenviar el puerto de una manera que me permita acceder desde el interior de wikispy?

d33tah
fuente

Respuestas:

1

Parece que aquí es donde una combinación de ProxyCommand y nc resulta útil. Aquí hay una solución - agregue lo siguiente a ~/.ssh/config:

Host bastion
HostName EXTERNAL_IP
User d

Host wikispy
HostName INTERNAL_IP
User d
ProxyCommand ssh bastion nc -q0 %h 22

De acuerdo a Este artículo , puede obtener más de un solo nivel de anidamiento de esta manera.

d33tah
fuente