Encaminhamento de porta para o Rsync

1

Todas as portas do meu servidor estão bloqueadas, exceto a porta 222, que também é conectada pelo ssh. Este servidor é praticamente um servidor de backup, e eu tenho meus clientes rsync para ele.

Eu faço isso usando o encaminhamento de porta do ssh ( -P 222 -L 873:myserver.com:873 ), no entanto, quero fazer isso apenas usando o comando rsync. Isso é possível?

Isso é o que eu tenho tentado:

sudo rsync -avv --progress --inplace --rsh='ssh -p 222 -L 873:myserver.com:873' . rsync://bt-backup@localhost/backup-bt-backup

mas não funciona porque eu tento logar em localhost, ao invés de myserver.com.

fazendo:

sudo rsync -avv --progress --inplace --rsh='ssh -p 222 -L 873:myserver.com:873' . rsync://[email protected]/backup-bt-backup

permite que eu faça o login através do ssh, mas o rsync tenta o host remoto em vez do localhost onde a porta foi encaminhada também

    
por Malfist 11.05.2010 / 21:22

3 respostas

3

Se o servidor estiver executando o SSHd, você poderá usar apenas rsync over SSH .

Por exemplo, eu executo coisas como rsync -a --inplace some/dir/ [email protected]:/destination/dir/
o tempo todo. Não há necessidade de executar o rsync como um daemon ou ter o encaminhamento de porta ativado, pois o rsync iniciará uma cópia dele usando o link SSH e manipulará toda a sincronização entre ele mesmo e aquela instância através do link SSH também (e a cópia remota será fechada como a conexão é descartado para que você não acabe com um monte de processos zumbis por aí).

Para falar sobre uma porta diferente da padrão, você só precisa dar ao rsync um pouco de informação extra sobre como ele deve gerenciar a conexão, da seguinte forma:
rsync -a --inplace -e 'ssh -p 222' some/dir/ [email protected]:/destination/dir/

Isto é realmente mais seguro (toda a comunicação rsync é protegida por SSHs transporte seguro, enquanto que com o encaminhamento de porta tudo é simples) e mais conveniente (não é necessário rsyncd, e você pode usar autenticação baseada em chave SSH)

    
por 11.05.2010 / 21:35
1

rsync -av --progress --inplace --rsh = 'ssh -p8023' somefile usuário @ host: somedir /

de link

Você só precisa de encaminhamento de porta se quiser usar o rsyncd no host remoto (com a configuração /etc/rsyncd.conf).

    
por 11.05.2010 / 21:33
1

Use um script para substituir o ssh. Crie um script ssh-connection.sh com o seguinte conteúdo:

#! /bin/bash
ssh -p 222 -L 873:myserver.com:873 -l bt-backup myserver rsync --server --daemon .

Não se esqueça de conceder permissões executáveis: chmod u+rx ssh-connection.sh

Este script ignora os argumentos de propósito. Deve ser usado como:

sudo rsync -avv --progress --inplace --rsh='./ssh-connection.sh' . rsync://localhost/backup-bt-backup

Boa sorte,
João Miguel Neves

    
por 11.05.2010 / 23:14