Transferir arquivos via ssh

Compartilhe:

computador transferindo arquivos via ssh com os comandos scp e sftp para o servidor

Já precisou enviar arquivos da sua máquina para um servidor remoto utilizando a linha de comando do linux e não conseguiu ?

Os comandos scp e sftp ajudam nesse trabalho para transferir arquivos via ssh do seu computador para um servidor com total segurança.

Neste guia prático, você vai aprender como instalar, entender a sintaxe e dominar o uso dessas duas ferramentas no linux para copiar diretórios e arquivos entre computadores na rede.

Comando scp

O comando scp (Secure Copy Protocol) é um utilitário de linha de comando que permite copiar arquivos e diretórios de forma direta e criptografada entre dois hosts na rede.

Ele é ideal para transferências rápidas de arquivos, pois executa a cópia e encerra a conexão logo em seguida sem exigir uma sessão interativa do shell.

Para instala-lo em distros linux baseadas no Debian ou Ubuntu, utilize o apt para instalar o pacote openssh-client:

Nas distros Red Hat, AlmaLinux e Rocky Linux, instale o pacote openssh-clients para ter disponível o programa scp:

Para utilizar o comando scp é necessário entender sua sintaxe, que é:

Explicação:

scp – O programa que copia os arquivos entre computadores em uma rede.

opções – São as opções que alteram o que ele faz por padrão.

origem – Arquivo(s) ou diretório(s) a ser copiado(s).

destino – Local para onde os arquivos e diretórios serão copiados.

Para aprender na prática como utilizar o comando scp para transferir arquivos via ssh a seguir tem alguns exemplos práticos para o melhor entendimento.

Enviando arquivos da máquina cliente para o servidor

Suponha que você alterou o arquivo de configuração de um site em wordpress (config.php) no seu computador e precisa enviá-lo para a pasta do servidor da sua hospedagem.

Será solicitada autenticação do usuário (no exemplo: dlncloud) do computador remoto (122.200.201.2).

Em seguida o comando scp pega o arquivo “config.php” do diretório atual da sua máquina e o envia diretamente para a pasta “/var/www/html/” dentro do servidor com o IP “122.200.201.2”, se autenticando com a conta de usuário chamada “dlncloud”.

Para enviar mais de um arquivo informe a localização completa de cada arquivo que será feito o upload, por exemplo:

Substitua no comando “dlncloud” pela conta de usuário cadastrada no servidor.

No exemplo, são enviados os arquivos “app2.py” e “conect-bd.py” da máquina que está utilizando para o diretório “/srv/app2/bin” do host “122.200.201.2”.

Baixando arquivo do servidor para máquina cliente

Para baixar um arquivo, por exemplo, um backup do site em wordpress contido no arquivo “/backups/site.tar.gz” de um servidor VPS (122.200.201.2) execute o seguinte comando:

No exemplo, a origem agora é a máquina remota (122.200.201.2). O arquivo especificado no caminho remoto será baixado diretamente para a localização “/srv/site” (diretório de destino).

Copiando todo conteúdo de uma pasta

Se você precisa enviar uma pasta inteira de projetos (Exemplo: ./meu-projeto) para o diretório “/opt/” do servidor (122.200.201.2) que recebe conexões SSH na porta “2222”, execute o comando:

A opção “-P” faz o scp usar uma porta personalizada, por segurança, alguns servidores alteram a porta padrão do SSH, no exemplo é a porta “2222”.

Enquanto a opção “-r” garante que a pasta (./meu-projeto) seja copiada recursivamente, ou seja, o diretório e todo seu conteúdo são copiados.

Para aprender mais sobre o comando scp recomendo a leitura online do seu manual.

Comando sftp para transferir arquivos via SSH

O comando sftp (SSH File Transfer Protocol) é uma ferramenta interativa que pode ser utilizada para transferência de arquivos.

O programa sftp cria uma sessão contínua na qual você pode navegar pelos diretórios remotos e em seguida transferir arquivos via SSH.

Assim como o SCP, a comando SFTP faz parte da suíte padrão do OpenSSH. Para instala-lo no debian ou ubuntu execute o comando:

Já nas distribuições linux RedHat, AlmaLinux e Rocky Linux o comando para instalar o comando sftp é:

Para iniciar uma sessão interativa via SFTP, utilize a seguinte sintaxe:

Por exemplo, para acessar o servidor “122.200.201.2” se autenticando com o usuário “dlncloud” o comando completo fica assim:

Após a autenticação, você receberá o prompt do comando sftp, algo assim “sftp>”.

Para aprender a transferir arquivos via SSH utilizando o comando sftp a seguir tem alguns exemplos práticos.

Download de arquivos do servidor para seu computador

Para baixar um arquivo de outro computador para o seu utilize o “get” do comando sftp.

Exemplo, suponha que você precisa investigar erros do sistema baixando o arquivo “/var/log/error.log” da máquina remota, execute os seguintes comandos no prompt do sftp:

O comando “cd /var/log” acessa a localização “/var/log” do servidor remoto e o segundo comando “get error.log” faz o download do arquivo “error.log” para o diretório corrente da sua máquina, a pasta que estava acessando antes de se conectar ao servidor.

Upload de arquivos da sua máquina para um servidor

Já para enviar arquivos utilize o “put” do comando sftp, por exemplo, suponha que você gerou um novo arquivo “.css” chamado “rodape.css” e precisa enviar para a pasta “/var/www/html/site/css” do servidor.

Primeiro acesse a pasta “/var/www/html/site/css” do servidor remoto.

Ainda no prompt do sftp, acesse a pasta da sua máquina que contém o arquivo, no exemplo, está na localização completa “/home/dlncloud/projetos/site/css”:

E por fim execute o comando “put” para fazer upload do arquivo (no exemplo: rodape.css):

O segundo exemplo, copie o diretório “/home/dlncloud/projetos/site/css” e tudo que tem dentro no cliente (sua máquina) para o diretório “/var/www/html/site/” no servidor.

A opção “-r” (recursivo) do comando “put” no sftp copia a pasta e todo seu conteúdo para o destino.

Quer se aprofundar seus conhecimentos sobre o protocolo SFTP, aprendendo mais comandos interativos ? Confira o nosso Guia Prático sobre o Comando SFTP para dominar essa ferramenta.

Conclusão

Aprender a transferir arquivos via ssh é fundamental no dia-dia de quem trabalha com servidores linux. Com os comandos scp e sftp você consegue realizar cópias rápidas entre máquinas na rede, tudo criptografado pelo ssh.

Depois de dominar esses comandos, você poderá enviar scripts, configurações, backups e outros arquivos entre computadores da rede com muito mais segurança e praticidade.

Se você está começando a estudar linux, também vale a pena conhecer outros comandos, lendo nosso guia completo de Comandos Linux: guia completo para ampliar seu conhecimento.

Ficou com alguma dúvida sobre os exemplos ou tem alguma sugestão ? Deixe seu comentário abaixo!

Perguntas Frequentes (FAQ) sobre o transferir arquivos via ssh

Como posso transferir arquivos via ssh sem precisar digitar a senha toda vez ?

Você pode configurar a autenticação por chaves SSH (chave pública e privada), sem uso de senha para proteger a chave. Uma vez configurada a chave no arquivo authorized_keys do servidor, você conseguirá transferir arquivos de forma automática.

É possível retomar uma transferência interrompida com o comando SFTP ?

O comando sftp suporta o reinício de downloads ou uploads utilizando comandos específicos (como reget ou reput) dentro de sua sessão interativa.

Qual é a diferença entre scp e sftp ?

O comando scp é direcionado para cópias diretas de arquivos e diretórios. Já o comando sftp oferece uma sessão interativa na qual você pode navegar pelos diretórios remotos, enviar e baixar arquivos e executar diversas operações.

Posso retomar uma transferência interrompida com o comando scp ?

O SCP não suporta o reinício de transferências interrompidas.

Navegue por tópicos:

Foto de Edson Oliveira
Edson Oliveira

Especialista em Linux, trabalhando com TI tem experiência no gerenciamento, solução de problemas e suporte de servidores linux em ambientes corporativos.

Professor de cursos voltados a linux, tecnologias open source e certificações LPI. Possui as certificações LPIC-1, LPIC-2 e LPIC-3 (Mixed Environment).

Navegue por tópicos:

Você também pode gostar:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Valorizamos sua privacidade

Utilizamos cookies para aprimorar sua experiência de navegação, exibir anúncios ou conteúdo personalizado e analisar nosso tráfego. Ao clicar no botão “Aceitar todos”, você concorda com nosso uso de cookies.

Para mais informações leia nossa Política de Privacidade.