12 scp command examples securely transfer files linux
Este tutorial explica o protocolo Secure Copy ou comando SCP usado para copiar com segurança os arquivos no Linux e Unix com sintaxe e exemplos:
Neste artigo, discutiremos o comando SCP (Secure Copy Protocol) que é usado para transferência de arquivos. Veremos o que é e como funciona com a ajuda de alguns exemplos. Então, vamos primeiro tentar entender o que é comando SCP.
O que você aprenderá:
O que é o comando SCP?
SCP (Secure Copy Protocol) é um protocolo de rede usado para a transferência segura de arquivos entre hosts em uma rede de computadores. Usando este utilitário de linha de comando em sistemas Linux e Unix, você pode fazer a transferência de arquivos de um host local para um host remoto, ou de um host remoto para um sistema local, ou entre dois hosts remotos.
(imagem fonte )
O SCP garante a autenticidade, criptografia e confidencialidade dos dados, fazendo uso do mecanismo SSH (Secure Shell) para a transferência dos arquivos. Portanto, os dados em trânsito são protegidos contra ataques de espionagem. Os clientes podem fazer upload e download de arquivos e diretórios de e para um servidor usando este protocolo. Requer senha ou chaves para autenticação. A porta padrão para SCP é a porta TCP 22.
O benefício do protocolo SCP é que você não precisa iniciar uma sessão FTP ou fazer login nos hosts remotos explicitamente para a transferência de arquivos.
Sintaxe para protocolo SCP
# 1) Para copiar o arquivo do host local para o host remoto
scp (options) SourceFileName UserName@TargetHost:TargetPath
Esta é a sintaxe básica do comando SCP que copiará o arquivo de origem do host atual para o caminho de destino no host de destino usando uma conta de usuário. Normalmente, é bastante semelhante ao comando copy cp.
# 2) Para copiar de um host remoto para o local
Para copiar o arquivo:
scp (options) UserName@SourceHost:SourceFilePath TargetFileName
Ou, basta baixar o arquivo:
scp (options) UserName@SourceHost:SourceFilePath
Para copiar pasta (recursivamente):
scp -r UserName@SourceHost:SourceDirectoryPath TargetFolderName
Se o host remoto usar uma porta diferente da porta padrão 22, o número da porta precisará ser mencionado explicitamente no comando usando a opção -P.
# 3) Copiar de um computador remoto para outro computador remoto
scp (options) UserName@SourceHost:SourcePath UserName@TargetHost:TargetPath
Quando você copia arquivos de um computador remoto para outro, o tráfego não passa pelo seu computador. Esta operação ocorre diretamente entre os dois servidores remotos.
# 4) Copiar vários arquivos
Para copiar vários arquivos de localhost para um host remoto:
scp file1 file2 UserName@TargetHost:TargetDirectoryPath
Para copiar vários arquivos de um host remoto para um diretório atual de localhost:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}
Opções usadas com o comando SCP
As opções mais comumente usadas com o comando SCP estão listadas abaixo:
- -C : C, aqui significa habilitar compactação. Ao usar esta opção, a compactação será ativada e a velocidade de transferência aumentará durante a cópia. Ele ativará automaticamente a compactação na origem e a descompressão no destino.
- -c: c significa cifra. Por padrão, o SCP usa ‘AES-128’ para criptografar arquivos. Se você deseja alterar a cifra, você precisa usar a opção -c seguida pelo nome da cifra.
- -eu : i significa identificar arquivo ou chave privada. Geralmente, a autenticação baseada em chave é escolhida em ambientes Linux. Portanto, podemos mencionar especificamente o arquivo de chave privada ou o arquivo de identidade usando a opção -i.
- -eu: l significa limite de largura de banda. Por meio desta opção, você pode definir a largura de banda máxima a ser usada. Está em Kbits / s.
- -B: Esta opção é usada para usar o modo em lote durante a cópia.
- -F: Esta opção é usada para usar um arquivo ssh_config diferente durante a cópia em situações onde você precisa usar redes diferentes para se conectar a sistemas Linux. Em tais cenários, você precisa atribuir um arquivo de configuração SSH por usuário substituto.
- -P: Se o número da porta ssh do host de destino for diferente do número da porta padrão 22, você precisará mencionar especificamente o número da porta usando a opção -P.
- -p: Esta opção é usada para preservar as permissões de arquivo, modificações e tempos de acesso durante a cópia.
- -q: Esta opção executará o comando SCP no modo silencioso. Isso desligará o medidor de progresso e não mostrará o progresso da transferência, aviso ou mensagens de diagnóstico de ssh na tela do terminal Linux.
- -r: A opção -r é usada para copiar os arquivos e diretórios recursivamente. Por exemplo, se você deseja copiar a pasta inteira (junto com o conteúdo dentro da pasta) em uma máquina de destino, você precisa usar a opção -r.
- -S: Esta opção é usada para especificar o programa a ser usado para conexão.
- -v: v significa verboso. Esta opção mostrará o progresso passo a passo da execução do comando SCP na tela do terminal. É realmente útil na depuração.
Exemplos de comando SCP
Vamos entender como usar o comando SCP com a ajuda de exemplos:
Exemplo 1: para copiar do host local para o remoto
scp -v lockfile.txt kaushapx@10.172.80.167: /home/cpf657/kaushapx/test1
No exemplo acima,
o que é chave de segurança de rede no roteador
- A opção -v é usada como uma opção detalhada para ver os detalhes da saída deste comando no terminal Linux. Usando a saída detalhada, você pode saber exatamente o que está acontecendo em segundo plano quando o comando é executado. Isso ajuda a depurar.
- Lockfile.txt é o nome do arquivo de origem que desejamos transferir para um host remoto.
- Kaushapx é um exemplo de nome de usuário. Usando essa conta de nome de usuário, copiaremos com segurança o arquivo para o host remoto.
- 10.172.80.167 é o exemplo do IP do host remoto de destino para o qual queremos transferir o arquivo.
- / home / cpf657 / kaushapx / test1 é um exemplo de um caminho absoluto onde queremos colocar este arquivo transferido.
As capturas de tela abaixo demonstram a execução do comando SCP acima.
Exemplo 2: para copiar do host remoto para o sistema local:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/test/parent/directory1/DemoFile.txt /home/tpf655/kaushapx
Exemplo 3: para copiar vários arquivos para um host remoto:
scp DemoFile.txt log.xml kaushapx@10.172.80.167:/home/cpf657/kaushapx/test
Exemplo 4: para copiar arquivos em dois sistemas remotos:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
Exemplo 5: para copiar arquivos e diretórios recursivamente (usando a opção -r):
Suponha que eu tenha uma pasta chamada ‘teste’ no host local e essa pasta contenha quatro arquivos. Quero copiar a pasta inteira dentro de outra pasta chamada ‘test1’ presente em um host remoto.
Vou usar o seguinte comando:
scp -r test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Exemplo 6: para aumentar a velocidade de cópia habilitando a compressão (usando a opção -C):
Vamos transferir a mesma pasta que fizemos no Exemplo 5, mas desta vez habilitando a compressão:
scp -r -C test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
qual é o melhor downloader gratuito do youtube
Exemplo 7: para limitar a largura de banda durante a cópia (usando a opção -l):
Vamos continuar com a mesma opção. Desta vez, usaremos a opção -l e especificaremos a largura de banda, digamos 500. Lembre-se, a largura de banda que colocamos aqui é em Kbit / s.
Exemplo 8: para especificar uma porta ssh diferente durante a cópia (usando a opção -P):
Se o servidor remoto no qual você está copiando o arquivo estiver usando alguma porta diferente da porta padrão 22, você precisará informar explicitamente o número da porta no comando SCP usando a opção -P. Por exemplo, se a porta ssh do servidor remoto for 2022, você mencionará -P 2022 no comando SCP.
scp -P 2022 console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
Exemplo 9: para preservar as permissões de arquivo, modificações e tempos de acesso durante a cópia (usando a opção -p):
scp -p console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Exemplo 10: para copiar arquivos em modo silencioso (usando a opção -q):
scp -q console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Exemplo 11: para identificar arquivos no SCP durante a cópia (usando a opção -i):
No exemplo acima, my_private_key.pem é o arquivo de identidade ou arquivo de chave privada.
Exemplo 12: para usar uma cifra diferente durante a cópia por meio de SCP (usando a opção -c):
scp -c 3des-cbc -r test1 kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
FAQ sobre o comando SCP
Nesta seção, cobriremos algumas perguntas frequentes sobre o comando SCP.
Q # 1) O que é o comando SCP?
Responda: SCP significa Secure Copy Protocol. Usando o comando SCP, você pode executar a cópia de arquivos com segurança entre hosts em uma rede. Ele usa os mecanismos de SSH para transferência de dados. Ele usa autenticação baseada em chave ou senha.
P # 2) O que o SCP faz no Linux?
Responda: No Linux, o comando SCP transfere os arquivos entre servidores de maneira segura. Pode ser uma cópia de arquivo entre um servidor remoto e um host local ou entre dois servidores remotos. SCP é um comando pré-instalado no Linux e é conhecido por sua simplicidade e segurança.
P # 3) Como fazemos arquivos SCP no Linux?
Resposta: Você pode usar arquivos SCP com a seguinte sintaxe de comando:
scp (options) (username@)(source_host:)file1 (username@)(destination_host:)file2.
Muitas opções podem ser usadas com o comando SCP. Por exemplo, -C para compressão, -c para cifra, -P para a porta, -I para a chave privada, -l para limite, -r para cópia recursiva, etc.
P # 4) Como podemos SCP um arquivo?
Responda: Você pode SCP um arquivo usando o comando SCP conforme mencionado na Q # 3.
P # 5) O SCP copia ou move?
Responda: O comando SCP copia o (s) arquivo (s) da origem ao destino. Assim, após o SCP, o arquivo estará presente em ambos os hosts.
P # 6) Você pode usar SCP para um diretório?
Responda: Sim, podemos usar SCP para um diretório. Você precisa usar a opção -r para copiar todo o diretório junto com seu conteúdo.
Abaixo está a sintaxe do comando SCP para copiar o diretório de um host local para um host remoto:
scp -r localhost_path_to_directory username@target_server_ip:/path_to_target_directory/
P # 7) Como usamos SCP para todos os arquivos em um diretório?
Responda: Para usar o SCP em todos os arquivos em um diretório, você precisa adicionar * com o caminho do diretório:
scp -r localhost_path_to_directory/* username@target_server_ip:/path_to_target_directory/
Desta forma, todos os arquivos do diretório local serão copiados para o diretório remoto.
P # 8) Podemos usar SCP no Windows?
Responda: Sim, você pode usar SCP no Windows. No entanto, não é pré-baixado no Windows, ao contrário do Linux e do Mac, portanto, para o Windows, você precisa instalar o software SCP separadamente.
Você pode baixar o Putty, que inclui SCP para Windows (software denominado Putty SCP (PSCP), ou pode baixar WinSCP (Windows Secure Copy). O cliente PSCP é executado diretamente no prompt de comando do Windows. Existem outros softwares para usar SCP no Windows .
P # 9) Como usamos SCP para vários arquivos?
Responda: Para copiar vários arquivos de localhost para um host remoto usando SCP:
scp file1 file2 UserName@TargetHost:TargetDirectoryPath
Para copiar vários arquivos de um host remoto para um diretório atual de localhost usando SCP:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}
P # 10) Qual é a diferença entre SCP e SFTP?
Responda: SCP é o protocolo de cópia segura. SFTP é o protocolo de transferência de arquivos seguro. Ambos usam a porta TCP 22 e são executados no mecanismo SSH. Mas eles diferem em especificações e funções.
O SCP apenas transfere os dados, enquanto o SFTP também executa funções de acesso e gerenciamento de arquivos, além da transferência de arquivos. Com o SFTP, você pode realizar operações como listar diretórios remotos ou excluir arquivos. Mas o SCP só permite a cópia de arquivos e diretórios entre servidores.
A velocidade de transferência de arquivos no SCP é mais rápida do que no SFTP porque usa um algoritmo mais eficiente para a transferência de arquivos.
o que posso fazer com c ++
No SFTP, você pode retomar a transferência de arquivos interrompida do cliente de linha de comando. Mas o SCP não tem essa função.
SFTP oferece um componente GUI, mas o SCP não tem isso.
P # 11) O que é o comando SCP no Windows para copiar um arquivo com segurança?
Responda: Abra o prompt de comando do Windows e forneça o comando abaixo para copiar com segurança um arquivo de uma máquina local do Windows para um servidor (pode ser um servidor Linux):
pscp filepath userid @ target_server_ip: target_path
Exemplo: pscp c: desktop sample.txt userxyz@192.162.x.x: /tmp/foo/sample.txt
Você deve ter o PSCP instalado para executar este comando.
P # 12) O SCP é seguro?
Responda: Sim, o SCP é seguro. Utiliza mecanismo SSH (Secure Shell Protocol) para transferência de dados, aproveitando a segurança oferecida pelo SSH. Os dados em trânsito são mantidos em sigilo e também a sua autenticidade é garantida.
Conclusão
Neste tutorial, vimos como usar o comando SCP para copiar com segurança os arquivos entre dois hosts remotos ou entre um host local e um host remoto, sem iniciar uma sessão de FTP ou logar nas máquinas remotas explicitamente.
O SCP emprega o mecanismo SSH para copiar os dados e, portanto, os dados em trânsito são criptografados e protegidos. É necessária uma senha ou chave para autenticação. Em contraste com RCP (Remote Copy Protocol) ou FTP (File Transfer Protocol), o SCP criptografa o arquivo e as senhas trocadas entre os sistemas para proteger qualquer espionagem na rede.
Leitura recomendada
- Cortar comando no Unix com exemplos
- Find Command in Unix: Find Files with Unix Find File (exemplos)
- Sintaxe de comando Unix Cat, opções com exemplos
- Comando Ls no Unix com exemplos
- Argumentos de linha de comando em Unix Shell Script com exemplo
- Comando Grep no Unix com exemplos simples
- Manipulação de arquivos no Unix: Visão geral do sistema de arquivos Unix
- Comando de classificação Unix com sintaxe, opções e exemplos