Cópia de arquivos via SSH ⋆ ALexHost SRL

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills
18.12.2024

Cópia de arquivos via SSH

O SSH (Secure Shell) é um protocolo amplamente usado para acessar e gerenciar servidores remotos com segurança por meio de uma conexão criptografada. Uma das tarefas mais comuns ao trabalhar com SSH é copiar arquivos entre o computador local e um servidor remoto ou entre dois servidores remotos.

Neste artigo, exploraremos diferentes maneiras de copiar arquivos via SSH, incluindo o uso de SCP (Secure Copy Protocol), rsync e outros métodos.


Por que usar SSH para transferências de arquivos?

O uso do SSH para transferir arquivos oferece várias vantagens:

  • Segurança: O SSH criptografa o comando e os dados durante a transmissão, garantindo a proteção de informações confidenciais.
  • Eficiência: O SSH é rápido e confiável, permitindo a transferência de arquivos diretamente entre sistemas sem a necessidade de fazer login separadamente.
  • Automação: O SSH pode ser integrado a scripts, permitindo transferências automatizadas de arquivos entre servidores ou máquinas locais.

1. Cópia de arquivos com SCP (Secure Copy Protocol)

O SCP é uma das ferramentas mais populares para copiar arquivos de forma segura via SSH. Ele permite transferir arquivos de uma máquina local para um servidor remoto, de um servidor remoto para sua máquina local ou entre dois servidores remotos.

Sintaxe básica do SCP:

scp [opções] [source] [destination]

Exemplo 1: Copiar um arquivo do computador local para o servidor remoto

scp /path/to/local/file username@remote_host:/path/to/remote/destination

Neste exemplo:

  • /path/to/local/file é o caminho para o arquivo em seu computador local.
  • username@remote_host é o usuário SSH e o nome do host ou o endereço IP do servidor remoto.
  • /path/to/remote/destination é o caminho em que o arquivo será armazenado no servidor remoto.

Exemplo 2: Copiar um arquivo do servidor remoto para o computador local

scp username@remote_host:/path/to/remote/file /path/to/local/destination

Nesse caso, o arquivo é transferido do servidor remoto para o computador local.

Exemplo 3: copiar um diretório recursivamente

Para copiar um diretório inteiro, use a opção -r (recursiva):

scp -r /path/to/local/directory username@remote_host:/path/to/remote/destination

Isso transferirá o diretório e todo o seu conteúdo para o servidor remoto.

Opções úteis do SCP:

  • -P [port]: Especifique a porta SSH se ela for diferente da padrão (22).
  • -C: Ativar a compactação durante a transferência para acelerar a cópia de arquivos.
  • -i [identity_file]: Usar uma chave privada SSH específica para autenticação.

2. Cópia de arquivos com o rsync

o rsync é outra ferramenta poderosa para transferência de arquivos por SSH. Geralmente, ela é preferida para transferências de arquivos grandes ou repetitivos porque copia apenas as alterações entre a origem e o destino, economizando tempo e largura de banda.

Sintaxe básica do rsync:

rsync [opções] [source] [destination]

Exemplo 1: Copiar um arquivo do computador local para o servidor remoto

rsync -avz /caminho/para/local/arquivo nome_do_usuário@hospedeiro_remoto:/caminho/para/destino remoto

Exemplo 2: Copiar um diretório com o rsync

rsync -avz /caminho/para/local/diretório/ nome_do_usuário@hospedeiro_remoto:/caminho/para/remoto/destino/

Opções úteis de rsync:

  • -a: Modo de arquivamento, que preserva links simbólicos, permissões, registros de data e hora e propriedade de arquivos.
  • -v: Modo detalhado para exibir o progresso durante a transferência.
  • -z: Ativa a compactação para acelerar a transferência.
  • –delete: Remove arquivos no destino que não existem mais na origem.
  • -e “ssh -p [porta]”: Especifica uma porta SSH personalizada.

3. Cópia de arquivos entre dois servidores remotos

Usando o SSH, você também pode copiar arquivos diretamente entre dois servidores remotos. Tanto o SCP quanto o rsync oferecem suporte a isso.

Exemplo 1: Copiar arquivos entre dois servidores remotos com SCP

scp username1@remote_host1:/path/to/file username2@remote_host2:/path/to/destination

Exemplo 2: Copiar arquivos entre dois servidores remotos com rsync

rsync -avz username1@remote_host1:/path/to/file username2@remote_host2:/path/to/destination

Isso é particularmente útil para transferir arquivos entre servidores sem precisar baixá-los primeiro para o computador local.


4. Cópia de arquivos com SFTP (SSH File Transfer Protocol)

O SFTP é outro método de transferência segura de arquivos por SSH. É semelhante ao FTP, mas usa SSH para fornecer criptografia. Normalmente, o SFTP é usado em sessões interativas, mas também pode ser automatizado.

Uso do SFTP:

Para iniciar uma sessão SFTP, execute o seguinte comando:

sftp nome_do_usuário@hospedeiro_remoto

Uma vez dentro do prompt do SFTP, você pode usar comandos como:

  • put /path/to/local/file /path/to/remote/destination: Faz upload de um arquivo de seu computador local para o servidor remoto.
  • get /path/to/remote/file /path/to/local/destination: Faz download de um arquivo do servidor remoto para seu computador local.
  • mput e mget: Para fazer upload ou download de vários arquivos de uma só vez.

Para sair da sessão SFTP, digite exit ou quit.


5. Automatização de transferências de arquivos com chaves SSH

Para transferências repetidas de arquivos, é uma boa ideia configurar a autenticação baseada em chave SSH para que você não precise digitar sua senha todas as vezes.

Etapa 1: gerar um par de chaves SSH (se você não tiver uma)

Em sua máquina local, execute:

ssh-keygen -t rsa

Isso gerará um par de chaves públicas e privadas.

Etapa 2: Copiar a chave pública para o servidor remoto

Use o seguinte comando para copiar sua chave pública para o servidor remoto:

ssh-copy-id nome_do_usuário@host_remoto

Agora, você pode fazer login e transferir arquivos sem precisar digitar uma senha, facilitando a automação.


Conclusão

A cópia de arquivos via SSH é uma maneira segura e eficiente de transferir dados entre seu computador local e um servidor remoto ou entre dois servidores remotos. Quer você esteja usando SCP, rsync ou SFTP, o SSH oferece transferências de arquivos criptografados que protegem seus dados contra interceptação. Ferramentas como o SCP são simples para transferências únicas, enquanto o rsync é ideal para tarefas de sincronização contínuas, especialmente para arquivos ou diretórios grandes. A compreensão dessas ferramentas o ajudará a gerenciar as transferências de arquivos com mais eficiência, especialmente em um ambiente de servidor remoto.

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills