A primeira possibilidade é óbvia (observe a opção -t
):
ssh -t -i cloudkey -L 6000:localhost:6001 [email protected] -p 9000 \
"ssh -D 6001 -p 6666 localhost -l dancloud"
Com ProxyCommand
é mais complicado à primeira vista, mas conceitualmente você precisa apenas de um encaminhamento ( netcat
versão não é mais recomendado, usando a opção -W
é mais elegante):
Host proxy
Hostname 54.152.188.55
User admin
IdentityFile cloudkey
Host target
Hostname localhost
Port 6666
User dancloud
DynamicForward 6000
ProxyCommand ssh -W %h:%p proxy
e, em seguida, conecte apenas usando ssh target
(veja ... agora você nem precisa de um script bash:)).
Explicação: O segundo ssh
também está sendo executado em seu computador e, portanto, o soquete de encaminhamento dinâmico (proxy SOCKS) é criado diretamente no seu computador.
Sobre as senhas, não é algo aconselhável (as senhas devem ser secretas ), mas pode funcionar com sshpass
na frente do ssh
apropriado .
A página de manual para ssh
explica a opção -W
como:
-W
host
:port
Requests that standard input and output on the client be forwarded to host on port over the secure channel. Implies
-N
,-T
,ExitOnForwardFailure
andClearAllForwardings
. Works with Protocol version 2 only.
Em combinação com ProxyCommand
, ele se conecta ao hostname
solicitado e, em seguida, fornece basicamente uma versão incorporada de netcat
(conecta o IO padrão ao par host
: port
(o argumento).