Você já quis transferir alguns arquivos através de uma rede de computadores e enfrentou desafios de segurança? Bem, você não pode simplesmente jogar seus arquivos na rede e desejar que eles permaneçam seguros e protegidos, como o Chapeuzinho Vermelho! Você precisa de medidas de segurança. Você deve usar um protocolo de transferência de arquivos que garanta que seus dados estejam protegidos contra acesso não autorizado, detecção de rede, violações de dados e outros tipos de ameaças.
O Secure Copy Protocol (SCP) é um poderoso protocolo de rede de transferência de arquivos que transfere arquivos entre diferentes máquinas em uma rede. Nesta postagem do blog, nos familiarizaremos mais com esse protocolo e exploraremos o potencial do uso do SCP de máquinas remotas para locais.
Como funciona o SCP?
SCP usa SSH (Secure Shell) para transferir seus arquivos. Mas o que isso significa? SSH é um protocolo de rede para acesso remoto seguro a servidores. Está equipado com métodos para autenticar, criptografar e verificar a integridade dos arquivos de dados transmitidos. O SCP depende desses recursos de segurança e métodos de criptografia fornecidos pelo SSH para transferir arquivos em uma rede com segurança. Dessa forma, você pode utilizar o SCP de servidores remotos para locais para conexão segura e transferência de arquivos e ter certeza da autenticidade e confidencialidade de seus dados.
Usando SCP para transferências de arquivos; Por que e como?
Usar o SCP de remoto para local e de SCP local para remoto é uma maneira eficiente e flexível de transferir arquivos. SCP oferece algumas vantagens importantes para transferência de arquivos. Por exemplo, o SCP oferece medidas de segurança mais robustas do que outros métodos de transferência de arquivos como FTP. Outro aspecto em que o SCP diverge de outros protocolos é a velocidade. O SCP geralmente é muito mais rápido que outros protocolos como SFTP e é uma ótima ferramenta para transferência de arquivos entre máquinas Linux.
Você pode realocar arquivos com SCP:
- De uma máquina local para uma máquina remota
- De uma máquina remota para uma máquina local
- De uma máquina remota para outra máquina remota.
Agora, vamos usar a sintaxe SCP do Linux para transferência de arquivos. A primeira coisa que você precisa fazer é configurar o SSH em ambos os computadores. No entanto, é importante observar que o SSH normalmente é instalado em todas as máquinas Linux. Então, se esse for o seu caso, você pode pular essas etapas.
1. Configurando SSH
Execute o seguinte comando para instalar o SSH:
sudo apt install openssh-client
2. Gerando chaves SSH
O dispositivo cliente deve então estabelecer uma conexão SSH. Uma conexão segura entre máquinas cliente e servidor precisa que uma chave privada e uma chave pública sejam estabelecidas. Este comando cria um par de chaves SSH para você:
ssh-keygen
ao executar este comando, você provavelmente será solicitado a fornecer um nome para o par de chaves e uma senha (isso é opcional). Então, quando o par de chaves for criado, você deverá copiar a chave pública para a máquina servidora.
Agora, vamos dar uma olhada na forma geral do comando SCP:
scp [options] [source username@IP]:/[directory/file name] [destination username@IP]:/[directory]
- [opções] > Este primeiro colchete pode ser substituído por diferentes opções do comando SCP que veremos mais tarde.
- [source username@IP] > Este colchete deve ser substituído pelo nome de usuário e endereço IP da máquina local. Por exemplo: [email protected]
- [nome do diretório/arquivo] > Este colchete deve ser substituído pelo local do arquivo que você deseja enviar.
- [nome de usuário de destino@IP] > Este colchete deve ser substituído pelo nome de usuário e endereço IP da máquina receptora.
- [diretório] > Substitua esta seção pelo local desejado do seu arquivo na máquina remota.
Então, agora você sabe como é o comando geral. Vejamos todas as opções úteis do comando SCP:
| Opção | Caso de uso |
| -C |
Ao usar esta opção, o SCP compacta seus arquivos ao transferi-los.
|
| -c <cifra> |
Você pode usar esta opção para informar ao SCP para usar uma cifra específica. Por exemplo, scp -c <aes128-ctr>.
|
| -v |
Esta opção fornece um fluxo passo a passo do processo.
|
| -l <limite em quilobytes> |
Esta opção permite definir um limite para a largura de banda máxima. Por exemplo, o exemplo a seguir define o uso da largura de banda para 100 kb por segundo: scp -l 100
|
| -P |
Ao usar esta opção, você pode alterar a porta ssh do servidor remoto ao qual deseja se conectar. SCP usa a porta 22 por padrão.
|
| -S <nome do programa> |
Você pode usar esta opção para escolher um programa para conexão.
|
| -r |
Copie um arquivo ou diretório inteiro recursivamente.
|
Transferindo arquivos com SCP
Então, você lembra que temos três tipos de transferências com SCP, certo? Agora, queremos explorar cada tipo de transferência de forma dependente. Mas vamos definir a missão antes de começar. Tenho esta foto de gato na área de trabalho do meu computador Linux e, na primeira etapa, quero transferi-la para um servidor remoto Linux. Em seguida, irei transferi-lo de volta para o meu computador local. E por último, o gato sortudo se moverá entre duas máquinas remotas.

SCP de local para remoto
Usar este comando irá transferir nosso arquivo de um computador local para um servidor remoto:
scp [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Para usar o comando scp com senha você deve inserir a senha do seu servidor remoto. E então você terminou.

SCP de remoto para local
Para reverter esse processo, você não precisa acessar o terminal do seu servidor remoto. No terminal do seu computador local, digite este comando:
scp [username]@[IP address of the remote machine]:[path/to/the/file] [path/to/the/location]
Como você pode ver, acabamos de inverter as duas partes deste comando.

SCP entre duas máquinas remotas
Agora, vamos transferir o gato entre duas máquinas remotas. Esta etapa requer a senha de ambas as máquinas remotas, portanto, certifique-se de tê-las. Use este comando para transferir um arquivo entre dois computadores remotos:
scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]

Outros comandos SCP comuns
Os comandos SCP mais comuns são scp de remoto para local, scp de local para remoto e SCP entre dois hosts remotos. Mas não vamos parar por aí e explorar algum outro exemplo útil do Linux scp.
1. Copiando um diretório inteiro recursivamente
Imagine que você deseja transferir um diretório inteiro com todos os arquivos que ele contém. Seria muito demorado transferir esses arquivos um por um. Em vez disso, você pode usar o comando scp multiple files para copiar um diretório recursivamente:
scp -r [Path/to/directory] [username of the remote server]@[Ip address]:/[path/to/the/location]
Isso pode ser útil para muitos cenários:
- Implantação de código: ao implantar código ou aplicativos da web, pode ser necessário transferir um diretório inteiro com todos os seus componentes, como arquivos e scripts.
- Backup e sincronização: SE você deseja fazer um backup de um diretório inteiro ou se deseja sincronizar dois diretórios na máquina local e no servidor remoto, você precisa copiar tudo recursivamente.
- Migração do sistema: Uma tarefa crucial na migração do sistema é copiar e transferir todas as informações vitais. Usar o comando SCP com a opção -r garantirá que você não perca nada em seu processo de mudança.
2. Limitando o uso de largura de banda
Se quiser controlar a taxa na qual seus dados estão sendo transferidos, você pode usar o seguinte comando:
scp -l <limit> [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Por que você faria isso?
Nestes dois cenários, você pode usar a sintaxe scp do Linux para definir um limite na largura de banda:
- Congestionamento de rede: Se a sua rede estiver altamente congestionada, limitar a largura de banda com scp pode ajudar na distribuição dos recursos da rede. Limitar a largura de banda com SCP garante que outras tarefas relacionadas à rede sejam executadas sem problemas. Isso também é importante ao transferir arquivos em uma rede compartilhada, e seu processo pode atrapalhar as atividades de rede de outros usuários.
- Transferências em segundo plano: Durante transferências SCP em segundo plano, como backups automatizados ou processos de sincronização, há uma chance de que essas tarefas consumam os recursos da sua rede. Nesse caso, você pode limitar a largura de banda desses processos de transferência para gerenciar melhor os recursos.
3. Obtendo um registro detalhado
Usar a opção -v com SCP fornecerá um registro detalhado de informações adicionais sobre o processo de transferência. Você pode usar o comando abaixo para obter feedback e informações detalhadas:
scp -v [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Veja por que você precisa lembrar e usar este comando:
- Solução de problemas: usar esta opção mostra o progresso da transferência em ação. Você pode ver informações como tamanho do arquivo e porcentagem de conclusão. Ele também fornece mensagens de erro e avisos. A combinação desses dados permite monitorar e solucionar problemas do processo de transferência quando necessário.
4. Especificando uma porta SSH
Usar a sintaxe scp do Linux com a opção -P permite que você alterar a porta SSH. Aqui está o comando que permite fazer isso:
scp -P [port number] [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Isso pode ser útil para:
- Configuração de firewall: Se a porta SSH padrão for restrita ou se você quiser ocultar o serviço SSH de possíveis ameaças, poderá alterar a porta SSH.
Existem alternativas ao SCP?
SCP é rápido e seguro e, conhecendo a sintaxe correta do scp do Linux e algum conhecimento de solução de problemas, pode ser a única ferramenta de que você precisa. No entanto, não há mal nenhum em revisar suas alternativas.
1. rsync
rsync é uma ferramenta versátil de transferência de arquivos com recursos avançados de sincronização, transferências incrementais e cópia remota e local. Também pode reduzir o uso da largura de banda transferindo apenas as diferenças entre os arquivos de origem e de destino. Outra grande vantagem de usar o rsync é que ele pode retomar transferências de arquivos interrompidas de onde pararam e continuar o processo.
Prós do rsync
- Sincronização eficiente de arquivos e diretórios.
- Suporta algoritmo de transferência delta, reduzindo a transferência de dados.
- Pode retomar transferências interrompidas.
Contras do rsync
- Requer que o rsync seja instalado nos sistemas de origem e de destino.
- Requer mais opções de configuração e comando em comparação com o scp.
2. SFTP (protocolo de transferência de arquivos SSH)
SFTP fornece uma maneira segura de transferir arquivos por SSH. Ele oferece funcionalidade semelhante ao FTP, mas opera em uma conexão SSH criptografada, assim como o SCP. Mas em algumas áreas, as vantagens do SFTP superam as vantagens do SCP. O SCP não pode gerar listagens de diretórios, criar ou excluir diretórios, etc. O SFTP, no entanto, pode executar todas essas tarefas.
Profissionais de SFTP
- Transferência segura de arquivos com criptografia.
- Capacidades de gerenciamento remoto de arquivos.
- Ampla disponibilidade na maioria dos sistemas Linux e Unix.
Contras de SFTP
- A sintaxe e o uso dos comandos diferem do FTP tradicional.
- Pode ter suporte limitado em determinados sistemas ou dispositivos embarcados.
3. FTP (protocolo de transferência de arquivos)
FTP é um protocolo padrão amplamente utilizado para transferência de arquivos. Ele opera em um modelo cliente-servidor e oferece funcionalidade básica de transferência de arquivos.
Profissionais de FTP
- Amplo suporte em várias plataformas.
- Clientes gráficos e de linha de comando familiares estão disponíveis.
Contras de FTP
- Carece de criptografia/menos seguro em comparação com scp e sftp.
- Pode exigir configuração adicional de firewall para estabelecer conexões.
- Autenticação de texto simples.
No geral, embora o scp seja uma escolha simples e confiável para transferência segura de arquivos por SSH, alternativas como rsync, sftp e FTP podem oferecer recursos e flexibilidade adicionais, dependendo de requisitos específicos.
Então, como você decide qual escolher? Você deve considerar fatores como segurança, necessidades de sincronização, facilidade de uso e compatibilidade com seus sistemas e protocolos. Por exemplo, se a segurança e a confidencialidade dos dados são os fatores mais importantes na transferência de arquivos, o FTP não é uma boa escolha.
Conclusão
SCP é uma ferramenta rápida e segura para transferência de arquivos entre computadores. Você pode usar o scp de remoto para local, de local para remoto e até mesmo entre dois sistemas remotos para transferir arquivos. E embora existam alternativas ao SCP que fazem um trabalho adequado, como o rsync, ele as transcende de várias maneiras, especialmente em segurança e velocidade. Nesta postagem do blog, falamos sobre SCP, seus casos de uso e alternativas e também fornecemos uma folha de dicas para facilitar o acesso à sintaxe usada com frequência.
Perguntas frequentes
Há alguma preocupação de segurança que eu deva estar ciente ao usar o SCP de remoto para local?
SCP é uma ferramenta bastante segura e você não precisa se preocupar com ameaças à segurança ao usá-la. No entanto, é sempre recomendável tomar todas as medidas extras de segurança possíveis.
Quais são alguns erros comuns que ocorrem ao usar o SCP remoto para local?
Ao usar o SCP para transferir arquivos de um servidor remoto para uma máquina local, os usuários podem encontrar vários erros comuns. Aqui estão dois dos erros mais comuns ao usar SCP remoto para local:
- Nenhum arquivo ou diretório: esse erro ocorre quando você não especificou o número da porta correto, as configurações de permissão de arquivo estão incorretas ou quando as informações de login estão incorretas.
- Falha na verificação da chave do host: esta mensagem de erro ocorre quando a chave do host foi alterada devido a atualizações do servidor. A chave do host mostra que você já se conectou a esse servidor antes e, quando a verificação da chave do host falha, indica que a identidade do servidor foi alterada. Este erro está tentando protegê-lo de se conectar a um servidor fraudulento.
Como utilizo o SCP para transferir arquivos entre sistemas remotos?
Para transferir arquivos com sucesso entre sistemas usando SCP, ambos os computadores devem estar acessíveis através de SSH. você também precisa do endereço IP e da senha das máquinas remotas. O resto é apenas usar o comando SCP correto:
scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]
Após digitar este comando, você será solicitado a fornecer a senha aos servidores. Depois disso, seu arquivo será transferido.