Como transferir arquivos e diretórios com segurança usando SCP

Suraj Joshi 30 janeiro 2023
  1. Comando SCP
  2. Transferência de arquivos e diretórios utilizando o scp
Como transferir arquivos e diretórios com segurança usando SCP

O SCP, também conhecido como secure copy, é um utilitário de linha de comando para transferir arquivos e diretórios do local para um sistema remoto e vice-versa. Ele também nos permite transferir arquivos e diretórios entre dois sistemas remotos. Os arquivos e senhas são criptografados durante a transferência, para que seja uma forma mais segura de transferência.

Comando SCP

Sintaxe

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2

Bandeiras:

  • OPTION: Representa opções scp tais como cifra, configuração ssh, porta ssh, limite, cópia recursiva …etc
  • [user@]SRC_HOST:]file1: arquivo fonte ou diretório a ser copiado
  • [user@]DEST_HOST:]file2: caminho para o diretório onde o arquivo ou diretório de origem precisa ser copiado

A scp oferece várias opções para controlar a transferência. Algumas das opções mais amplamente utilizadas são:

-P Especificar o porto ssh do hospedeiro remoto
-p Preservar a modificação dos arquivos e os tempos de acesso.
-q Suprimir o medidor de progresso e as mensagens de erro
-C Comprimir dados durante a transferência
-r Copiar arquivos recursivamente.

Coisas a serem notadas enquanto se utiliza o comando scp:

  1. Este comando utiliza a tecla ssh ou senha para autenticar sistemas remotos.
  2. Reconhece sistemas remotos com : símbolo.
  3. Devemos dar uma olhada nas permissões de leitura do arquivo ou diretório de origem e escrever permissões do arquivo ou diretório de destino.
  4. scp substitui arquivos sem aviso prévio. Portanto, devemos ser cuidadosos durante a transferência de arquivos que compartilham o mesmo nome e localização em ambos os sistemas.

Transferência de arquivos e diretórios utilizando o scp

Copiar um arquivo do sistema local para o sistema remoto

scp main.py remote_username@11.11.0.200:/Documents/directory

Este comando nos solicitará uma senha de usuário e a transferência começará assim que digitarmos a senha correta.

Resultado:

remote_username@11.11.0.200's password:
main.py                             100%    0     0.0KB/s   00:00

Ele copia o arquivo main.py em nosso sistema local para o servidor remoto com nome de usuário remote_username e endereço IP 11.11.0.200. O /Documents/directory representa o diretório de destino no servidor remoto para o qual o arquivo precisa ser copiado. Se o diretório remoto não for especificado, o arquivo será copiado para o diretório home da máquina remota.

Se o SSH no remoto estiver escutando outra porta além da porta padrão 22, podemos especificar a porta utilizando a opção -P.

scp -P 8080 main.py remote_username@11.11.0.200:/Documents/directory

Copiar um diretório do sistema local para o sistema remoto

Devemos utilizar o argumento -r com o comando scp para transferir diretórios que representam uma transferência recursiva de todos os arquivos dentro do diretório.

scp -r /Documents/myapp remote_username@11.11.0.200:/Documents/remote_app

Ele copia o diretório myapp dentro do diretório Documents na máquina local para o diretório remote_app dentro do diretório Documents da máquina remota.

Copia um arquivo do sistema remoto para o sistema local

Para copiar um arquivo de sistema remoto para o sistema local, usamos um local remoto como fonte e um local local como destino.

scp remote_username@11.11.0.200:/remote/main.py /Documents/local

Ele copia o arquivo main.py do sistema remoto para nosso sistema local com o diretório de destino /Documentos/local.

Copia o arquivo de um local remoto para outro local remoto

scp userA@11.11.0.200:/host1/main.py userB@11.11.0.205:/host2

Ele copia o arquivo /host1/main.py do host remoto com o endereço IP 11.11.0.200 para o diretório host2 no host com o endereço IP 11.11.0.205.

Para rotear o tráfego através da máquina na qual o comando é emitido, adicionamos a opção -3 ao comando scp.

scp -3 userA@11.11.0.200:/host1/main.py userB@11.11.0.205:/host2
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artigo relacionado - Linux Files and Directories