Túnel SSH entre 2 máquinas con macOS

0

Me gustaría crear una conexión SSH a partir de localhostla cual pasaría host1y se conectaría host2.

Mi máquina local ejecuta macOS. host1y host2son máquinas de AWS que requieren archivos PEM para la autenticación.

Ejecuto el siguiente comando:

$ ssh -i cert.pem -L 9999:localhost:9999 user@host1-ip ssh -L 9999:localhost:1234 -N user2@host2-ip

Y recibe el siguiente error:

Permission denied (publickey).

¿Cómo puedo hacer que esto funcione?

aviran
fuente

Respuestas:

2

Ignorando por el momento la parte de reenvío de puerto de su ejemplo, es necesario utilizar la ProxyCommando ProxyJumplas directivas / -Jopción. Desde la línea de comando, intente esto:

ssh -i cert.pem -J user@host1-ip user2@host2-ip

Desde -Jy ProxyJumpse agregaron en OpenSSH 7.3 (IIRC), es posible que deba usar la ProxyCommanddirectiva anterior en su ~/.ssh/configarchivo, especialmente si sshsu Mac no se ha actualizado recientemente. Además, esto le permite especificar otras opciones, como IdentityFilecolocar su archivo PEM, como en:

Host host1
    User host1user
    Hostname host1-ip
    IdentityFile ~/.ssh/cert.pem

Host host2
    User host2user
    Hostname host2-ip
    IdentityFile ~/.ssh/cert.pem
    # hop through host1
    ProxyJump host1
    # or if older ssh-en, one of: 
    #ProxyCommand ssh -A host1 nc %h %p
    #ProxyCommand ssh -A host1 -W %h:%p

Con eso en su lugar, debería ser tan simple como:

 ssh host2

Para agregar su reenvío de puertos:

ssh host2 -L 9999:localhost:1234
garceta carmesí
fuente