Transferindo arquivos com rsync via SSH em porta customizada e acesso root remoto

Este tutorial aborda o uso do rsync para transferir arquivos via SSH em uma porta não padrão, com acesso root no servidor remoto sem habilitar login root via SSH. A solução é segura, funcional e ideal para ambientes Debian 12 (ou superiores).


Cenário

Você deseja:

  • Transferir arquivos via rsync
  • Usar SSH em uma porta customizada (ex: 10022)
  • Executar rsync como root remotamente
  • Sem permitir login SSH direto como root

Solução

O rsync permite usar sudo no comando remoto. O comando completo é:

sudo rsync -avz --progress -e "ssh -p 10022" --rsync-path="sudo rsync" usuario@servidor:/caminho/origem/ /caminho/destino/

Parâmetros usados:

  • sudo no início: executa rsync como root no cliente
  • -a: preserva permissões, datas, dono, etc.
  • -v: saída detalhada
  • -z: compressão
  • --progress: exibe taxa de transferência em tempo real
  • -e "ssh -p 10022": usa SSH na porta 10022
  • --rsync-path="sudo rsync": executa rsync como root no servidor remoto via sudo

Configurando o servidor Debian 12

  1. Dê permissão de sudo sem senha para o comando rsync:
sudo visudo -f /etc/sudoers.d/rsync_user

Conteúdo do arquivo:

usuario ALL=(ALL) NOPASSWD: /usr/bin/rsync
  1. (Opcional) Confirme que requiretty não está habilitado:

No /etc/sudoers, comente ou remova:

# Defaults requiretty

Resultado

  • Nenhuma senha será pedida
  • O rsync será executado como root no servidor remoto
  • A transferência será feita via SSH na porta 10022
  • Permissões e metadados dos arquivos serão preservados
  • A taxa de transferência será exibida em tempo real

Exemplo de saída com --progress:

backup.tar.gz
  11468800 100%    5.34MB/s    0:00:02 (xfr#1, to-chk=0/1)

E ao final, com --stats:

sent 12,345,678 bytes  received 1,234 bytes  2,345,678.90 bytes/sec
total size is 12,345,678  speedup is 1.00

Considerações

  • Essa abordagem evita liberar o login root no SSH (PermitRootLogin).
  • É compatível com qualquer distribuição Linux que use sudo.
  • Ideal para automações, backups, sincronização entre servidores e deploys.
Rolar para cima