SSH tunnel entre 2 máquinas usando macOS

0

Gostaria de criar uma conexão SSH a partir de localhost que passaria por host1 e se conectasse a host2 .

Minha máquina local executa o macOS. host1 e host2 são máquinas da AWS que requerem arquivos PEM para autenticação.

Eu corro o seguinte comando:

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

E receba o seguinte erro:

Permission denied (publickey).

Como posso fazer isso funcionar?

    
por aviran 23.01.2018 / 16:14

1 resposta

1

Ignorando no momento o encaminhamento de porta de seu exemplo, você precisa usar a opção ProxyCommand ou ProxyJump directives / -J . Na linha de comando, tente isto:

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

Como -J e ProxyJump foram adicionados ao OpenSSH 7.3 (IIRC), talvez seja necessário usar a diretiva ProxyCommand mais antiga no arquivo ~/.ssh/config , especialmente se o ssh no seu Mac não estiver atualizado recentemente. Além disso, isso permite que você especifique outras opções como IdentityFile para colocar seu arquivo PEM, como em:

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

Com isso, deve ser tão simples como:

 ssh host2

Para adicionar seu encaminhamento de porta:

ssh host2 -L 9999:localhost:1234
    
por 24.01.2018 / 17:16