Como copiar um arquivo usando o pscp através de um servidor intermediário de gateway

5

Eu tenho uma caixa de salto linux entre mim e um servidor remoto. Eu vi alguns posts sobre como fazer isso com o scp (por exemplo, aqui ), mas estou em uma caixa do Windows, então a situação é um pouco diferente. Quero copiar um arquivo da minha máquina Windows local, através de uma configuração do servidor como um gateway entre os dois. Eu deveria poder fazer um salto múltiplo através do servidor intermediário. Então, algo como isto:

A -> B -> C

Não quero copiar o arquivo para B, depois faça login em B e copie o arquivo novamente. Eu gostaria de poder executar o pscp em vários arquivos para copiá-los.

Scott
fonte

Respostas:

4

Eu descobri que a melhor maneira de fazer isso é primeiro estabelecer um túnel para o servidor intermediário (servidor B na ilustração). Então pscp neste link. Vou passar exatamente pelo que fiz.

1) Crie uma conexão SSH com o serverB no PuTTY

insira a descrição da imagem aqui

2) Para esta conexão, crie um túnel que vai da porta 2222 (você pode escolher outro se quiser) para o serverC na porta 22

insira a descrição da imagem aqui

3) Abra uma janela de comando no Windows. Navegue até onde PuTTY / pscp está instalado em sua máquina (se ainda não estiver no caminho)

4) Digite o seguinte comando (substituindo seus próprios valores pelos valores em {}):

c: \ putty> pscp -P 2222 -pw {myPasswordOnRemoteMachine} c: \ dev \ fileIWantToCopy.txt {myusername} @ 127.0.0.1: / tmp

5) Na máquina remota C, o arquivo deve estar no diretório / tmp

Scott
fonte
Uma alternativa mais fácil no Windows é apenas usar o WinSCP e usar o recurso de encapsulamento embutido no aplicativo.
1818 Scott Scott
1

A solução mais fácil que encontrei para esse problema foi não usar o pscp. Basta usar o WinSCP para copiar o arquivo.

  1. Digite o endereço final do servidor (ou seja, servidor 'C' na pergunta) na página da sessão e selecione SCP. insira a descrição da imagem aqui

  2. Clique em 'Avançado ...'. Vá para Conexão> Túnel. Digite aqui as informações do servidor de salto (ou seja, servidor 'B'). insira a descrição da imagem aqui

  3. Agora, basta fazer o login com seu arquivo de chave ou senha e você entrará em túnel.

Scott
fonte
0

Minha situação ainda mais complicada: A -> B -> C -> D -> E

I used PuTTY and FileZilla

A my Windows machine, 
B and C are gateways (very limited functionality)
D is the first Linux Machine and 
E is the target Linux Machine

I use PuTTY to: 
    ssh into B (w/username password) (IP of B is predefined in PuTTY) then
    ssh into C (w/username password) then manually
    ssh into D (w/username password) then manually
    ssh into E (at least this uses pubic key login so no uid/password!)

Once this is setup I then add tunnel to the IP of the final machine E in PuTTY thus:
    L7777 172.123.124.125:22



OK now fire up FileZilla:

File > SiteManager:
Setup new connection to:
Host: 127.0.0.1 Port: 7777
Protocol SFTP
Ask for password...

Connect!
xcxc
fonte