Quero baixar arquivos do computador do escritório para o laptop.
Posso conectar minha máquina de escritório por SSH ao servidor da organização e, em seguida, SSH do servidor à minha máquina de escritório.
Os únicos comandos que o servidor da organização aceita são ssh, ssh1 e ssh2.
Como posso baixar um arquivo da máquina do meu escritório (remoto) através do servidor para a minha máquina laptop (local)?
Se você tiver um OpenSSH (8.0) recente localmente , você pode usar o
-J
switch (jump) :Com versões mais antigas (mas pelo menos 7.3), você pode usar a
ProxyJump
diretiva , na linha de comando:ou em
ssh_config
arquivo, como mostra a resposta do @Ángel.Existem outras opções como
ProxyCommand
encaminhamento de porta, que você pode usar em versões ainda mais antigas do OpenSSH. Estes são abordados em O OpenSSH suporta login multihop?As respostas anteriores mencionam como usar a diretiva ProxyJump (adicionada no OpenSSH 7.3) para se conectar através de um servidor intermediário (geralmente chamado de bastion host), mas menciona-o apenas como um argumento de linha de comando.
A menos que seja uma máquina que você não vai conectar no futuro, o melhor é que você configure em
~/.ssh/config
.Eu colocaria um arquivo como:
Se você estiver usando uma versão anterior do OpenSSH que não suporta ProxyJump, substitua-a pelo equivalente:
e se sua versão ssh local fosse realmente antiga que não suportasse
-W
:embora este último exija que a máquina bastion esteja
nc
instalada.A beleza do ssh é que você pode configurar cada destino no arquivo e eles serão empilhados muito bem. Assim, você acaba trabalhando com
office-machine
o nome do host em todas as ferramentas (ssh, scp, sftp...) como elas eram conexões diretas, e elas descobrirão como se conectar com base no ssh_config. Você também pode ter curingas comoHost *.internal.company.local
fazer com que todos os hosts terminando assim passem por um bastião específico, e isso se aplicará a todos eles. Uma vez configurado corretamente, a única diferença entre fazer conexões de um salto ou vinte seriam os tempos de conexão mais lentos.Às vezes, podemos simplesmente usar o pipeline. Esse tempo é hoje.
Você pode carregar também
Sim, existem outras soluções envolvendo proxy, etc, mas saber como fazer isso é útil.
Use a
ProxyJump
configuração:Existe um protocolo antigo chamado ZMODEM : poucos programas o suportam hoje em dia, mas quando funciona, pode ser bastante conveniente.
Primeiro verifique se o programa de terminal do seu laptop suporta ZMODEM. (Por exemplo, você pode configurar o iTerm2 (no Mac) para suportar ZMODEM. Um script de exemplo está disponível aqui .)
Em sua máquina de escritório, execute:
sudo apt install lrzsz
Agora tudo o que você precisa fazer é ssh na máquina do escritório e executar o
sz (filename)
. O arquivo será baixado através do seu terminal.Configuração no ssh do usuário:
~/.ssh/config
Você pode copiar agora do servidor de intranet diretamente sobre o servidor de 3 saltos.
scp [email protected]:/home/user/ ./*
Eu prefiro isso por não precisar mais especificar servidores de salto com scp
Via SCP-3:
Isto é o que funcionou para mim:
O
.
no final indica que o caminho de download de destino é a pasta atual