Quiero SSH a una máquina C desde la máquina A a la B. Normalmente haría:
A$ ssh user@B
B$ ssh user@C
Tengo que escribir contraseñas ambas veces (no se permite clave pública). Me gustaría configurar un socket de control para que después de escribir ambas contraseñas pueda enviar ssh a C usando el socket, tal vez escribiendo algo como:
A$ ssh -S socket C
es posible?
Respuesta1
Puedes usar B como host de salto:
ssh -J user@B user@C
Si sus nombres de usuario o nombres de host son largos, puede agregarlos a ~/.ssh/config
:
Host hostB
HostName some-long-hostname-of-B-or-its-ip
User username-on-B
Host hostC
HostName same-here-for-C
User username-on-C
Entonces puedes ssh así:
ssh -J hostB hostC
El salto también se puede configurar para ssh hostC
:
Host hostC
HostName same-here-for-C
User username-on-C
ProxyJump hostB
Respuesta2
Para complementar la respuesta de gronostaj, así es como se crea un socket con -J:
$ ssh -M -S socket -J user@B user@C -fN
Luego, para usar el socket para iniciar sesión en C:
$ ssh -S socket C
De esta manera no es necesario que escriba ninguna contraseña.