Configuración SSH para el nombre de host leído desde el archivo

Configuración SSH para el nombre de host leído desde el archivo

La configuración es la siguiente:

  • PC localdesde donde quiero entrar a ssh…
  • Nodo de puerta de enlacegatewayque es un nodo intermedio que sólo se utiliza para realizar ssh en…
  • Nodo frontalfront, nuevamente un nodo intermedio, requerido para ingresar al final...
  • Nodo de cálculo, que es el nodo que realmente quiero usar

Quiero configurar mi configuración ssh local de manera que pueda escribir directamente ssh compute.

El problema:A diferencia de gatewayy front, el nombre de host del nodo de cálculo no es estático (es decir, puede cambiar varias veces en un día). Tengo un script compute_node_hostname.shen frontel que generará el nombre del nodo de cálculo, es decir node339. ¿Cómo puedo usarlo en mi configuración?

La siguiente configuración simple con el nodo de cálculo codificado funciona:

Host gateway front compute
    User …
    IdentityFile ~/.ssh/id_rsa

Host front
    HostName front
    ProxyJump gateway

Host compute
    HostName node339
    ProxyJump front

Restricción:No puedo usarlo RemoteCommanden mi configuración.

Respuesta1

Recuerde que 'ProxyJump' es una versión más inteligente de 'ProxyCommand': realiza un trabajo adicional al copiar las opciones especificadas en CLI, pero esencialmente es lo mismo que:

Host compute
    ProxyCommand ssh -W %h:%p front

donde %hy %pse expanden automáticamente al nombre de host y puerto solicitados.

Entonces, la forma en que puedes usar un nombre de host dinámico es reemplazando el %hparámetro:

Host compute
    ProxyCommand ssh -W $(compute_node_hostname.sh):%p front

Nota: Esto no funcionará bien con nodos que tengan diferentes claves de host. Dado que se está conectando a través de otro host que ya está en la red remota, debería ser seguro deshabilitar la verificación de la clave de host para este salto.

información relacionada