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:
Exemplo 1: Copiar um arquivo do computador local para o servidor remoto
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
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):
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:
Exemplo 1: Copiar um arquivo do computador local para o servidor remoto
Exemplo 2: Copiar um diretório com o rsync
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
Exemplo 2: Copiar arquivos entre dois servidores remotos com rsync
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:
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:
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:
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.