Conéctese (SSH) al mismo servidor, a través de dos puertas de enlace diferentes, con diferentes usuarios del servidor

Conéctese (SSH) al mismo servidor, a través de dos puertas de enlace diferentes, con diferentes usuarios del servidor

Lo que me gustaría lograr es poder conectarme a algunos target.serverdesde mi máquina local, sin tener que escribir ninguna contraseña, con los siguientes comandos:

ssh [email protected]
ssh [email protected]

Cada usuario anterior solo acepta una conexión desde una dirección IP específica, correspondiente respectivamente a gateway1.exampley gateway2.example. He agregado todas las claves SSH necesarias a la derecha authorized_keys, para poder hacerlo sin escribir contraseñas:

Ahora creo que queda poner las cosas adecuadas en mi local ~/.ssh/config. Cuando agrego:

Host target.server
    ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'

Entonces funciona. Pero no sé cómo hacer ambas cosas y funcionar. Lo intenté:ssh [email protected]user1user2

Host target.server
    User user1
    ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Host target.server
    User user2
    ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'

o

Host target.server
    User user1
        ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
    User user2
        ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'

pero todavía no funcionó user2: todo salió bien gateway1y no gateway2.

¡Muchas gracias de antemano por tu ayuda!

Actualizar:He podido hacer que funcionen los siguientes comandos:

ssh user1
ssh user2

(sin @target.server), usando la siguiente configuración:

Host user1
    HostName target.server
    User user1
    ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Host user2
    HostName target.server
    User user2
    ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'

Esto es lo que usaré, pero todavía tengo curiosidad por ver una solución a los dos comandos al comienzo de esta pregunta.

Respuesta1

Como habrás descubierto, los alias son una buena solución. Si no desea utilizarlos, la Matchdirectiva podría ser otra opción válida.

Host target.server
    Match User user1
        ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
    Match User user2
        ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'

Desde la ssh_configpágina de manual:

Fósforo Restringe las siguientes declaraciones (hasta el siguienteAnfitriónoFósforopalabra clave) que se utilizará sólo cuando se cumplan las condiciones que siguen a laFósforopalabra clave están satisfechos.

información relacionada