Como scp através de dois ssh

0

Eu tenho três computadores: HOME, WORK e SERVER e estou conectado de HOME a SERVER por:

ssh -t <WORKusername>@<WORK> ssh -p23456 <SERVERusername>@localhost

Preciso transferir o arquivo de HOME para SERVER , mas não consigo deixar o arquivo em WORK

Além disso, eu precisaria transferir um arquivo do SERVER para o HOME depois de processá-lo, como faço isso?

Eu dei uma olhada no link e scp entre dois hosts remotos do meu (terceiro) pc , mas não consigo para alterar a configuração do ssh na máquina HOME

E eu tentei isso, mas não cheguei a lugar algum:

$ scp -o ProxyCommand="ssh <WORKusername>@<WORK> nc localhost" ASPEC.zip <SERVERusername>@localhost:~/
<WORKusername>@<WORK>'s password: 
This is nc from the netcat-openbsd package. An alternative nc is available
in the netcat-traditional package.
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-P proxy_username] [-p source_port]
      [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol]
      [-x proxy_address[:port]] [hostname] [port[s]]
ssh_exchange_identification: Connection closed by remote host
lost connection

Eu também tentei o seguinte, mas este é o contrário para transferir o arquivo de SERVER - > HOME:

ssh -t <WORKusername>@<WORK> "ssh -p 23456 <SERVERusername>@localhost \"cat file.zip\""

Eu também tentei o tar, mas não funcionou:

tar c file.zip | ssh -t <WORKusername>@<WORK> "ssh -p 23456  <SERVERusername>@localhost | tar x"
Pseudo-terminal will not be allocated because stdin is not a terminal.
<WORKusername>@<WORK>'s password: 
Pseudo-terminal will not be allocated because stdin is not a terminal.
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

Então eu tentei:

# From home:
$ ssh -L 23456:<SERVERusername>@localhost:22 <WORKusername>@<WORK>

# After ssh, in WORK:
$ ssh -p 23456 <SERVERusername>@localhost

# From home:
$ scp -P file.zip <SERVERusername>@localhost:~/

E eu tenho esse erro quando eu dou o comando scp,

# on WORK terminal:
channel 3: open failed: administratively prohibited: open failed

# on SERVER terminal:
ssh_exchange_identification: Connection closed by remote host
lost connection

Eu também tentei o rsync, mas não funcionou:

rsync -e "ssh -A -t <WORKusername>@<WORK>e ssh -p23456 <SERVERusername>@localhost" file.zip :~/

Como posso scp de HOME para transferir um arquivo para SERVER?

E também de SERVIDOR para CASA?

    
por alvas 16.08.2014 / 22:59

2 respostas

3

Tente usar isso:

scp -P SERVERPORT -o 'ProxyCommand ssh -p WORKPORT WORKUSER@WORK nc %h %p 2>/dev/null' localfile SERVERUSER@SERVER:remotefile

ProxyCommand cria o proxy no host WORK que está conectado a SERVER: SERVERPORT (consulte nc ). %h e %p são variáveis ssh - host de destino e porta respectivamente.

    
por 19.08.2014 / 10:33
0

Você pode tentar algo como:

cat localfile | ssh <WORKusername>@<WORK> "ssh -p23456 <SERVERusername>@localhost 'cat > remotefile'"
    
por 19.08.2014 / 16:30

Tags