Comandos essenciais do SCP/SFTP no Linux

Olá, seja muito bem vindo ao blog ideatip. Os últimos posts que lancei foram baseados no SSH para acessar e controlar maquinas Linux remotamente e sobre geração de chaves de RSA. No poste de hoje, seguindo esse assunto, vou mostrar os comandos essenciais do SCP/SFTP no Linux, com isso você será capaz de enviar e receber arquivos e pastas de outros computadores Linux usando esse protocolo que é bastante abordado por aqui e, acredite, tem bastante assunto sobre isso, e para quem trabalha com servidores Linux, o domínio desse protocolo é extremamente importante.

Se preferir assista a versão em vídeo 😉

 

Entendendo a sintaxe do SCP

Você precisa de pelo menos duas maquinas, virtuais ou não, e ao menos uma delas é preciso ter o SSH server instalado e funcionando ( veja como clicando aqui ). Para o exemplo que trago aqui, usei duas maquinas reais que ficam na minha rede local ( LAN ) mas funciona exatamente da mesma forma para uma maquina que esteja em uma rede externa, desde que possua um IP externo ou um serviço de DDNS.

A maquina 1. Servidor, aquele que possui o SSH server instalado e que irá servir o cliente permitindo tanto o download quanto o upload de arquivos.

O servidor SSH aqui na minha rede possui:

Usuário: gabriel

IP: 192.168.0.11

A maquina 2. Cliente, o que será servido, ou seja, que irá utilizar os serviços que provem do servidor. Não precisa de instalar o SSH server.

Não é necessário saber o IP do client, apenas do servidor. Com esses dados em mãos, vamos começar.

O sistema operacional utilizado em ambos foi o Deepin Linux, porém feita a instalação do SSH, o processo é o mesmo para todas as distribuições!

 

Enviando arquivos via SCP/SFTP

O primeiro passo a ser abordado será o envio de um arquivo. Eu possuo um arquivo na raiz de minha pasta home, video01.mp4, e quero enviar esse video para a home do servidor, para isso o comando será:

scp -P 2225 video01.mp4 gabriel@192.168.0.11:~/

enviando arquivos via sftp scp

Enviando um arquivo via SCP/SFTP

Explicando:

scp chama a aplicação

-P 2225 significa que a porta que deve ser usada é a 2225. Essa é a unica parte que pode variar. Caso você não tenha alterado a porta padrão do SSH no servidor não precisa especificar nada que ele irá se conectar usando a porta 22, eu geralmente mudo por achar mais seguro trabalhar com portas mais altas e foi a utilizada no ultimo tutorial.

video01.mp4 é o arquivo que irei enviar, note que estou navegando no mesmo diretorio que se encontra o arquivo e por isso apenas o nome é suficiente. Se o arquivo estiver em um outro diretorio deve-se usar o caminho completo + o nome ex: /home/client/video01.mp4

gabriel@192.168.0.11:~/ essa parte pode ser divida em 3; “gabriel” que é o nome do usuário do servidor no qual eu vou usar para autenticar seguido de @ e “192.168.0.11” que é o IP do servidor ( caso fosse externo poderia ser DDNS no lugar do IP ) e finalmente “:~/” que indica o caminho de destino desse arquivo, no caso o “~” indica a pasta home do usuário em questão ( gabriel ). Resumindo: scp -P [ porta ] [Arquivo de Origem ] [ usuario ]@[IP ou DDNS]:[caminho destino]

 

Pegando um arquivo via SCP/SFTP

Não chamaria de erro mas de um inconveniente que vejo bastante é a pessoa acessar o servidor via SSH e depois tentar transferir algum arquivo estando logado no servidor. Se ambos estiverem com o SSH server instalado irá funcionar, porém se o client for apenas client não será possível. É para isso que existe o “push” no SCP e é quando você já sabe onde está algo em um computador e faz o download direto da maquina client, como se tivesse um “link” para baixar algo. Ele funciona invertendo a posição do [destino] com a [origem], veja o exemplo:

scp -P 2225 gabriel@192.168.0.11:~/video01.mp4 ~/Downloads/

Baixando um arquivo via SCP/SFTP

Baixando um arquivo via SCP/SFTP

Nesse caso a sintaxe seria: scp -P [ porta ] [ usuario ]@[ IP ou DDNS ]:[ caminho origem no servidor ] [ destino no localhost ]

Extra

Para enviar/baixar mais de um arquivo por vez apenas coloque um espaço e digite o caminho do outro arquivo, se estiverem na mesma pasta que você está navegando basta digitar os nomes. Ex: scp -P 2225 video01.mp4 video02.mp4 vide03.mp4 gabriel@192.168.0.11:~/

Para enviar/baixar pastas completa via SCP/SFTP basta colocar “-r”. Ex: scp -r -P 2225 Documentos gabriel@192.168.0.11:~/Downloads/

No caso do recebimento de pasta a regra de inverter o caminho destino x origem é válida.

Bom, esses são os comandos essenciais do SCP/SFTP no Linux, entendendo esses comandos os incrementos se tornarão mais fácil de compreender, lembrando que para saber mais sobre as possibilidades de basicamente qualquer programa no Linux basta digitar “man” + o nome programa para ver o manual desse programa. Ex: man scp

Espero que o post tenha sido de alguma ajuda para você, se preferir assistir o vídeo é só clicar aqui.

Muito obrigado por acompanhar o blog, não deixe de curtir a página no Facebook e de nos seguir no Instagram 🙂

Leave Comment