¿Convenientemente SSH a hosts internos?

¿Convenientemente SSH a hosts internos?

Recientemente descubrí que con ~/.ssh/config, puedo ahorrar muchas pulsaciones de teclas y automatizar líneas de comando largas, 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 bastiony wikispy. Bastion tiene una IP externa, wikispysolo es visible desde la interna. Esto significa que normalmente para conectarme wikispy, primero necesito hacer ssh bastiony luego llamar ssh wikispy. Obviamente, cosas como el reenvío de puertos van a ser complicadas de esta manera y esto es algo que me gustaría evitar.

Esto lleva a una pregunta: ¿puedo de alguna manera hacer ~/.ssh/configuna entrada que diga "cuando el usuario solicita un host etiquetado wikispy, realmente se conecta bastiony luego llama ssh wikispy"? ¿Sería posible trabajar de forma transparente para poder llamar a cosas como ssh wikispy -L 9999:localhost:9999y bastionreenviar el puerto de una manera que me permita acceder a él desde dentro wikispy?

Respuesta1

Parece que aquí es donde una combinación de ProxyCommandy ncresulta ú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 aEste artículo, puede obtener más de un nivel de anidamiento de esta manera.

información relacionada