Como usar o comando scp no Linux

O comando scp torna a cópia de arquivos entre computadores Linux fácil e segura. Ele usa segurança SSH, mas o melhor de tudo é que é simples. se você pode usar cp você pode usar scp .

índice

  1. O protocolo de cópia segura e scp
  2. Copiar um único arquivo
  3. Recuperação de arquivo único
  4. Copie vários arquivos
  5. Cópia recursiva de diretórios
  6. Copiar arquivos entre servidores remotos
  7. Outras opções

O protocolo de cópia segura e scp

Vamos definir alguns termos: existe SCP e existe scp . O SCP maiúsculo significa Secure Copy Protocol. o scp minúsculo significa cp seguro. Em outras palavras, SCP é um protocolo e scp é um programa.

scp foi projetado para ser um meio seguro de copiar arquivos entre computadores Linux remotos. Ele usa SSH para estabelecer conexões seguras. SSH, ou shell seguro, é um protocolo de rede criptográfico que é frequentemente usado para acessar e efetuar login em computadores Linux remotos. Nas distribuições Linux, o OpenSSH fornece a funcionalidade SSH.

SCP é uma coisa antiga, e preocupações foram levantadas sobre seu uso hoje. A partir da versão 8.8 do OpenSSH, o SCP é considerado obsoleto. As implementações modernas do scp usam como padrão o Secure File Transfer Protocol por padrão. O SSH ainda é usado para conexão segura, mas as transferências de arquivos são tratadas pelo SFTP. Tudo isso é invisível e acontece magicamente nos bastidores, e a sintaxe do scp permaneceu a mesma.

O programa rsync é preferível ao scp , mas você pode encontrar um computador que não tenha o rsync instalado e para o qual você não tenha privilégios de root, o que significa que você não pode ir em frente e instalá-lo. Para copiar arquivos de um computador para outro em uma rede autônoma, o scp está perfeitamente bem. Para que o scp funcione, você deve ter o SSH rodando em todos os computadores para copiar de e para.

Para ver a versão do OpenSSH instalada em seu computador, digite:

 ssh -V

Copiar um único arquivo

Assim como o domínio cp padrão, o scp copia arquivos do local de origem para o local de destino . Para copiar um arquivo para um computador remoto, você deve saber o endereço IP ou o nome da rede do computador remoto. Você também deve ter as credenciais de uma conta de usuário que tenha privilégios de gravação para o local para o qual está enviando o arquivo.

Para enviar um arquivo chamado "sample.txt" para um computador chamado "fedora-34" na rede local, a sintaxe é:

 scp ./sample.txt [email protected] :/home/dave/Downloads/

O comando é composto por:

  • scp : O comando scp
  • ./sample.txt : O arquivo que vamos enviar. Isso está no diretório atual.
  • David @ : A conta de usuário no computador remoto para o qual enviaremos o arquivo.
  • fedora-34.local : O nome da rede do computador remoto.
  • :/home/dave/Downloads/ : O local para copiar o arquivo no computador remoto. Observe os dois pontos ":" que separam o nome do computador e o caminho.

Você será solicitado a digitar a senha da conta no computador remoto e, em seguida, o arquivo será copiado.

Se desejar que o arquivo tenha um nome diferente no computador remoto, você pode adicionar um nome de arquivo ao caminho de destino. Para copiar o mesmo arquivo e nomeá-lo como "diferente-arquivo.txt", use esta sintaxe:

 scp ./sample.txt [email protected] :/home/dave/Downloads/different-file.txt

O comando scp substitui silenciosamente os arquivos existentes, portanto, tenha cuidado ao copiar os arquivos. Se já existir um arquivo no computador de destino com o mesmo nome do arquivo que você está copiando, ele será substituído e perdido.

Se o computador de destino não estiver usando a porta SSH padrão de 22, você poderá usar a opção -P (número da porta) para fornecer o número da porta apropriado.

Recuperação de arquivo único

Para copiar um arquivo de um servidor remoto, basta colocar o servidor remoto como origem e colocar o caminho local onde deseja que o arquivo seja copiado como destino. Vamos copiar um arquivo chamado "plan.md de desenvolvimento" do computador remoto para o diretório atual no computador local.

 scp [email protected] :/home/dave/Downloads/development-plan.md .

Se você adicionar um nome de arquivo ao caminho local, o arquivo será copiado e receberá esse nome.

 scp [email protected] :/home/dave/Downloads/development-plan.md ./dp-1.md

O arquivo é copiado, mas renomeado para nosso nome de arquivo especificado.

 ls -hl *.md

Copie vários arquivos

Copiar vários arquivos em qualquer direção é fácil. Você pode listar quantos arquivos de origem desejar. Aqui, estamos copiando dois arquivos markdown e um arquivo CSV.

 scp ./dp-1.md ./dp-2.md ./dp-3.csv [email protected] :/home/dave/Downloads/

Todos os três arquivos são copiados para o computador remoto. Você também pode usar curingas. Este comando faz exatamente a mesma coisa que o último comando.

 scp ./dp . [email protegido] :/home/dave/Downloads/

Cópia recursiva de diretórios

A opção -r (recursiva) permite copiar árvores de diretórios inteiras com um único comando. Colocamos dois arquivos em um diretório chamado "data" e criamos um diretório chamado "CSV" dentro do diretório "data". Colocamos um arquivo CSV no diretório "data/CSV".

Este comando copia os arquivos e recria a estrutura de diretórios no computador remoto.

 scp -r ./data [email protected] :/home/dave/Downloads/

Copiar arquivos entre servidores remotos

Você pode até mesmo instruir o scp a copiar arquivos de um servidor remoto para outro. A sintaxe é bastante simples. Você fornece o nome da conta e o endereço de rede do servidor de origem e o nome da conta e o endereço de rede do servidor de destino. Os arquivos são copiados do servidor de origem e copiados para o local do servidor de destino.

Embora a sintaxe seja simples, certificar-se de que todo o resto está no lugar requer um pouco mais de reflexão. Obviamente, o local para o qual você está tentando copiar os arquivos no servidor remoto deve estar acessível à conta de usuário especificada na linha de comando. E essa conta de usuário deve ter permissões de gravação para esse local.

Um pré-requisito mais sutil é que o acesso SSH deve ser configurado entre o computador local e o computador de origem e também entre os servidores de origem e de destino. Certifique-se de usar o SSH para fazer login no servidor de destino a partir do servidor de origem . Se você não puder fazer isso, o scp não poderá se conectar.

Configurar as chaves SSH para que você possa usar o acesso autenticado, mas sem uma senha, é de longe o método preferido. O uso de senhas fica complicado muito rapidamente e, como você é solicitado a fornecer a senha para cada conta de usuário, isso impede que você automatize totalmente o processo com um script.

Configuramos chaves SSH para as contas de usuário que usamos em cada servidor remoto. Isso forneceu acesso SSH contínuo ao outro servidor, para esses dois usuários. Isso nos permite transferir arquivos em qualquer direção, usando essas duas contas de usuário.

Para copiar arquivos da conta de usuário "davem" em um computador Manjaro para a conta "dave" em um computador Fedora, por meio de um comando scp emitido de nosso computador Ubuntu local, a sintaxe é:

 scp [email protegido] :/home/davem/man . [email protegido] :/home/dave/

Voltamos silenciosamente à linha de comando. Não há indícios de que algo tenha acontecido. Partindo da premissa de que nenhuma notícia é uma boa notícia, o scp apenas relata erros para esta cópia remota para remota. Verificando o computador Fedora podemos ver que os arquivos do computador Manjaro foram copiados e recebidos.

Por padrão, os arquivos são copiados diretamente do computador de origem para o computador de destino. Você pode substituir isso usando a opção -3 (três vias).

Com esta opção, os arquivos são transferidos do destino para a origem, através do seu computador local. Para que isso aconteça, deve haver acesso SSH contínuo do computador local ao computador de destino.

 scp -3 [email protegido] :/home/davem/man . [email protegido] :/home/dave/

Ainda não há indicação de que algo tenha acontecido, mesmo ao canalizar os arquivos pelo computador local. O teste do pudim, é claro, é verificar o computador de destino.

Outras opções

O -p (preservar atributos de arquivo) manterá a criação do arquivo original, propriedade e marcas de acesso nos arquivos transferidos. Eles terão os mesmos metadados que os arquivos originais no computador de origem.

Se você vir mensagens de erro, tente repetir o comando e use -v (verbose) para ver informações detalhadas sobre a tentativa de transferência. Você deve ser capaz de detectar o ponto de falha na saída.

A opção -C (comprimir) compacta os arquivos à medida que são copiados e os descompacta quando são recebidos. Isso é algo que remonta à era das comunicações lentas de modem entre computadores. Reduzir o tamanho da carga útil pode reduzir os tempos de transmissão.

Hoje, o tempo necessário para compactar e descompactar arquivos provavelmente será maior do que a diferença entre fluxos compactados e descompactados. Mas como o scp é melhor usado para copiar arquivos entre computadores na mesma LAN, a velocidade de transmissão não deve ser uma grande preocupação.

  • Firefox agora pode traduzir páginas sem sacrificar a privacidade
  • O que é moeda fiduciária?

descubra mais conteúdo

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

O que é uma carga fantasma?

O que é SCP no Linux?

O comando scp copia arquivos ou diretórios entre um sistema local e um sistema remoto, ou entre dois sistemas remotos. Você pode usar este comando de um sistema remoto (após efetuar login com o comando ssh) ou do sistema local. O comando scp usa ssh para transferência de dados.

O que é SSH e SCP?

O programa SCP é um cliente que implementa o protocolo SCP , ou seja, é um programa que realiza uma cópia segura. O cliente SCP mais usado é o programa scp Command Prompt, que está embutido na maioria das implementações SSH . O programa scp é o análogo seguro do comando rcp.

Qual é a porta SCP?

22 A porta padrão para SCP , SFTP ou SSH é 22.

Como usar comandos SCP?

Sintaxe de exemplo de comando SCP do Linux

  1. [outras opções] são modificadores que você pode adicionar ao comando SCP .
  2. [source username@IP] é o nome de usuário e o IP da máquina que possui o arquivo desejado.
  3. :/ informa ao comando SCP que você está prestes a gravar no diretório de origem.
Ir arriba