Android

Como usar o comando scp para transferir arquivos com segurança

SSH - Usando scp para transferência de arquivos entre hosts Linux

SSH - Usando scp para transferência de arquivos entre hosts Linux

Índice:

Anonim

O SCP (cópia segura) é um utilitário de linha de comando que permite copiar com segurança arquivos e diretórios entre dois locais.

Com o scp , você pode copiar um arquivo ou diretório:

  • Do sistema local ao sistema remoto.De um sistema remoto ao sistema local.Entre dois sistemas remotos do sistema local.

Ao transferir dados com scp , os arquivos e a senha são criptografados, para que qualquer pessoa que bisbilhote o tráfego não receba nada sensível.

Neste tutorial, mostraremos como usar o comando scp através de exemplos práticos e explicações detalhadas das opções mais comuns do scp.

Sintaxe de comando do SCP

Antes de começar a usar o comando scp , vamos começar revendo a sintaxe básica.

A sintaxe do comando scp assume o seguinte formato:

scp SRC_HOST:]file1 DEST_HOST:]file2

  • OPTION - opções scp como cipher, configuração ssh, porta ssh, limite, cópia recursiva… etc. SRC_HOST:]file1 - arquivo de origem. DEST_HOST:]file2 - arquivo de destino

Os arquivos locais devem ser especificados usando um caminho absoluto ou relativo, enquanto os nomes de arquivos remotos devem incluir uma especificação de usuário e host.

scp fornece várias opções que controlam todos os aspectos de seu comportamento. As opções mais usadas são:

  • -P Especifica a porta ssh do host remoto. -p Preserva a modificação dos arquivos e os tempos de acesso. -q Use esta opção se desejar suprimir o medidor de progresso e as mensagens de erro. -C . Esta opção forçará o scp a compactar os dados conforme eles são enviados para a máquina de destino. -r Esta opção diz ao scp para copiar diretórios recursivamente.

Antes de você começar

O comando scp depende do ssh para transferência de dados, portanto, requer uma chave ou senha ssh para autenticar nos sistemas remotos.

Dois pontos ( scp é como o scp distingue entre locais locais e remotos.

Para poder copiar arquivos, você deve ter pelo menos permissões de leitura no arquivo de origem e permissão de gravação no sistema de destino.

Tenha cuidado ao copiar arquivos que compartilham o mesmo nome e local nos dois sistemas, o scp substituirá os arquivos sem aviso.

Ao transferir arquivos grandes, é recomendável executar o comando scp dentro de uma tela ou sessão do tmux.

Copiar arquivos e diretórios entre dois sistemas com scp

Copiar um arquivo local para um sistema remoto com o comando scp

Para copiar um arquivo de um sistema local para um sistema remoto, execute o seguinte comando:

scp file.txt [email protected]:/remote/directory

Onde file.txt é o nome do arquivo que queremos copiar, remote_username é o usuário no servidor remoto, 10.10.0.2 é o endereço IP do servidor. O /remote/directory é o caminho para o diretório para o qual você deseja copiar o arquivo. Se você não especificar um diretório remoto, o arquivo será copiado para o diretório inicial do usuário remoto.

Você será solicitado a digitar a senha do usuário e o processo de transferência será iniciado.

[email protected]'s password: file.txt 100% 0 0.0KB/s 00:00

Omitir o nome do arquivo do local de destino copia o arquivo com o nome original. Se você deseja salvar o arquivo com um nome diferente, é necessário especificar o novo nome do arquivo:

scp file.txt [email protected]:/remote/directory/newfilename.txt

Se o SSH no host remoto estiver escutando em uma porta diferente da 22 padrão, você poderá especificar a porta usando o argumento -P :

scp -P 2322 file.txt [email protected]:/remote/directory

O comando para copiar um diretório é muito parecido com o de copiar arquivos. A única diferença é que você precisa usar o sinalizador -r para recursivo.

Para copiar um diretório de um sistema local para remoto, use a opção -r :

scp -r /local/directory [email protected]:/remote/directory

Copiar um arquivo remoto para um sistema local usando o comando scp

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

Por exemplo, para copiar um arquivo chamado file.txt de um servidor remoto com IP 10.10.0.2 execute o seguinte comando:

scp [email protected]:/remote/file.txt /local/directory

Copiar um arquivo entre dois sistemas remotos usando o comando scp

Ao contrário do rsync , ao usar o scp você não precisa fazer login em um dos servidores para transferir arquivos de uma máquina remota para outra.

O comando a seguir copiará o arquivo /files/file.txt do host remoto host1.com para o diretório /files no host remoto host2.com .

scp [email protected]:/files/file.txt [email protected]:/files

Você será solicitado a digitar as senhas das duas contas remotas. Os dados serão transferidos diretamente de um host remoto para outro.

Para rotear o tráfego através da máquina na qual o comando foi emitido, use a opção -3 :

scp -3 [email protected]:/files/file.txt [email protected]:/files

Conclusão

Neste tutorial, você aprendeu como usar o comando scp para copiar arquivos e diretórios.

Você também pode configurar uma autenticação baseada em chave SSH e conectar-se aos servidores Linux sem inserir uma senha.

terminal scp