¿Cómo puedo reescribir el siguiente comando con ProxyCommand?
ssh -l username1 -t jumphost1 \
ssh -l username2 -t jumphost2 \
ssh -l username3 -t jumphost3 \
ssh -l username4 server
Esto no funciona
ssh -o ProxyCommand="\
ssh -l username1 -t jumphost1 \
ssh -l username2 -t jumphost2 \
ssh -l username3 -t jumphost3" \
-l username4 server
username1@jumphost1's password:
Pseudo-terminal will not be allocated because stdin is not a terminal.
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
ssh_exchange_identification: Connection closed by remote host
Soy consciente de su uso con nc, pero estoy buscando la forma de usarlo con más de 3 saltos, y también uso esta opción con scp. Revisé la ssh_configpágina de manual, pero la información es bastante escasa, al menos para mí.
EDITAR
Intenté usar ProxyCommandanidado en otro ProxyCommandcomo se sugiere a continuación, pero siempre obtengo algo en las siguientes líneas
debug3: ssh_init_stdio_forwarding: 192.17.2.2:2222
debug1: channel_connect_stdio_fwd 192.17.2.2:2222
debug1: channel 0: new [stdio-forward]
debug2: fd 4 setting O_NONBLOCK
debug2: fd 5 setting O_NONBLOCK
debug1: getpeername failed: Bad file descriptor
debug3: send packet: type 90
debug2: fd 3 setting TCP_NODELAY
debug3: ssh_packet_set_tos: set IP_TOS 0x10
debug1: Requesting [email protected]
debug3: send packet: type 80
debug1: Entering interactive session.
Afortunadamente, desde 7.3 -Jo ProxyJumpsirve mi propósito - aunque todavía a tener que trabajar alrededor de mi configuración de teclas.
ssh -q -J user1@jumphost1,user2@jumphost2,user3@jumphost3 user@server

scp, porque SCP espera mensajes de control de SCP, pero en su lugar recibe mensajes de control SSH y falla. Por otro lado, loProxyCommandhace de forma transparente y, por lo tanto, el más externossh(oscp) recibirá los mensajes directamente desde el otro extremo.>aparece el mensaje donde está esperando romper la continuación de la línea, es decir, el comando nunca se ejecuta.%debería funcionar:%%hen su casoHe hecho esto con dos saltos, pero debería funcionar para tres. La forma más simple es tener el
~/.ssh/configarchivo configurado en cada host. Entonces, si desea estar encendidohostay llegar ahostdtravés dehostby hostc`, puede configurar sus configuraciones de esta manera:En
hosta:~/.ssh/config:En
hostb:~/.ssh/config:En
hostc:~/.ssh/config:Luego puedes usar
ssh hostdcualquiera de los hosts de la cadena y llegarás a elloshostd.Usar netcat para el proxy no interfiere con
scp.Si por alguna razón realmente no desea utilizar
~/.ssh/configarchivos locales , puede hacerlo enhosta:fuente
ncuso. ¿Puedes reescribir el comando que publiquéProxyCommandcomo una opción?scp". No interfiere conscp. Pero te daré el comando cómicamente largo como una edición en breve.ProxyCommandanidar? Si relees mi publicación, verás que esa es la esencia. Pensé que podría, en lugar de anidar como lo hiciste, encadenar todos los nodos intermediosProxyCommand. Todavía me pregunto si eso es de alguna manera posible.ProxyCommanddirectivas contigo al próximo anfitrión de la cadena.