espera script para scp por meio de um host intermediário

1

Eu encontrei um comando para direcionar diretamente meu arquivo para um host (C) através de outro host (B) do meu computador. O comando está nesta forma:

scp -oProxyCommand="ssh -W %h:%p B" thefile C:destination

Eu usei e funciona bem na linha de comando. mas quando eu quero escrever um script de espera usando este comando, eu tenho alguns erros. o script que escrevi está nesta forma:

#!/usr/bin/expect

set arg1 [lindex $argv 0]

spawn scp -oProxyCommand="ssh -W %h:%p B" ./$arg1 C:destination 

interact

e o erro é:

unknown option -- W 
A opção

W funciona na linha de comando, mas não no script esperado. Alguém pode me dizer por quê?

    
por Mostafa Tavakoli 10.06.2017 / 04:16

1 resposta

1

Muito mais fácil seria configurar isso no ~/.ssh/config , onde você não precisa se preocupar com a sintaxe dos scripts esperados e seus problemas com os argumentos. Crie ~/.ssh/config com este conteúdo:

Host C
  ProxyCommand ssh -W %h:%p B

e, em seguida, conecte-se usando apenas

spawn scp ./$arg1 C:destination

Ou use a versão simplificada usando ProxyJump option:

spawn scp -oProxyJump=B ./$arg1 C:destination 
    
por Jakuje 10.06.2017 / 10:56