A versão nc
não é mais recomendada. Use a opção -W
, que é fornecida em versões recentes do OpenSSH. Além disso, você não precisa copiar a configuração para outros hosts! Toda a configuração precisa ser feita no seu host e não interfere de forma alguma no scp
. Basta criar um arquivo ~/.ssh/config
com:
Host jumphost1
User username1
Host jumphost2
User username2
ProxyCommand ssh -W %h:%p jumphost1
Host jumphost3
User username3
ProxyCommand ssh -W %h:%p jumphost2
Host server
User username4
ProxyCommand ssh -W %h:%p jumphost3
Em seguida, conecte-se usando ssh server
ou use scp file server:path/
. Se você insiste em oneliner (ou não tem certeza do que você quer dizer sobre ProxyCommand
nesting), então como já apontado, é um inferno de escapes:
ssh -oProxyCommand= \
'ssh -W %h:%p -oProxyCommand= \
\'ssh -W %h:%p -oProxyCommand= \
\\'ssh -W %h:%p username1@jumphost1\\' \
username2@jumphost2\' \
username3@jumphost3' \
username4@server
Você basicamente precisa ir de dentro.