
La configuración es la siguiente:
- PC localdesde donde quiero entrar a ssh…
- Nodo de puerta de enlace
gateway
que es un nodo intermedio que sólo se utiliza para realizar ssh en… - Nodo frontal
front
, 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 gateway
y 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.sh
en front
el 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 RemoteCommand
en 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 %h
y %p
se 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 %h
pará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.