%20al%20mismo%20servidor%2C%20a%20trav%C3%A9s%20de%20dos%20puertas%20de%20enlace%20diferentes%2C%20con%20diferentes%20usuarios%20del%20servidor.png)
Lo que me gustaría lograr es poder conectarme a algunos target.server
desde 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.example
y gateway2.example
. He agregado todas las claves SSH necesarias a la derecha authorized_keys
, para poder hacerlo sin escribir contraseñas:
ssh [email protected]
desde la máquina local, luego desde .ssh [email protected]
gateway1
ssh [email protected]
desde la máquina local, luego desde .ssh [email protected]
gateway2
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]
user1
user2
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 gateway1
y 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 Match
directiva 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_config
pá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.