Created: 2022-10-03 20:34 | Updated: 2022-10-03 20:34 |
Esta dica é para quem precisa transferir arquivos de ou para um servidor tendo apenas acesso via SSH (sem usar o SCP).
Exemplo: imagine que você precise copiar um arquivo do servidor B, mas que o acesso a ele só possa ser efetuado através do servidor A, isto é, para acessar o servidor B seja necessário primeiro acessar o servidor A (via SSH, claro) e, a partir dele, executar uma nova sessão SSH para o servidor B (considerndo, claro, que você não queira ou não possa usar o recurso de forwarding no servidor A). Neste caso, o SCP só será útil se você puder acessar o servidor A, copiar para ele os arquivos de B usando o SCP (por exemplo), encerrar a sessão SSH com o servidor e e só então, usar o SCP para copiar os arquivos do servidor A para seu computador (e, possivelmente, esquecer de apagá-los de A).
Existe uma forma relativamente simples de fazer isso usando o comando zssh.
Primeiro, instale o ZSSH:
sudo apt install zssh
Depois, use o zssh para acessar o servidor, da mesma forma que faria com o SSH:
zssh usuario@ssh
COm esta sessão, você pode transferir arquivos tanto na sessão atual como em sessões SSH normais executadas a partir da sessão SSH: basta executar no sistema remoto o comando sz (send) ou rz (receive) e teclar CTRL SPACE e usar os comandos rz (receive) ou sz (send) dependendo do que você quer fazer.
Por exemplo, vamos imaginar que preciso transferir o arquivo bind.zip que está no servidor 10.10.0.1, mas que o acesso a ele só é possível via o servidor 200.200.200.200. Primeiramente, acessaríamos o 200.200.200.200 usando o zssh:
zssh usuario@200.200.200.200
Depois, a partir deste servidor, executaríamos uma sessão SSH normal para o servidor 10.10.0.1:
ssh usuario@10.10.0.1
Neste ponto, já temos acesso ao arquivo bind.zip, já que estamos no servidor fonal (10.10.0.1). Então, executaríamos o comando sz (send thru ZMODEM) para iniciar a transmissão do arquivo:
sz bind.zip
�*B00000000000000
O próximo passo é ativar o modo comando do ZSSH: pressione CTRL SPACE - aparecerá o prompt do ZSSH:
zssh>
Digite rz (receive thru ZMODEM) e o arquivo será transferido para seu computador local, na mesma pasta onde o ZSSH foi executado:
zssh > rz
Receiving: bind.zip
Bytes received: 15402/ 15402 BPS:314601
Transfer complete
Para sair do modo comando do ZSSH e voltar ao terminal remoto, digite quit:
zssh > quit
Fui!