Você precisa -e ssh para rsync?


22

Eu sempre costumava usar o seguinte comando quando copiar a partir de um servidor: rsync --progress -avze ssh user@host:/path/to/files ./here. No entanto, um amigo me mostrou que eu posso simplesmente fazer rsync --progress -avz user@host:/path/to/files ./here. Portanto, a questão é: se você não precisa, -e sshpor que existe?

Respostas:


20

Sempre que você precisar de opções adicionais para o comando ssh fora do usuário e do host, precisará do sinalizador -e. Talvez o servidor ao qual você está se conectando tenha ssh escutando na porta 2222.

rsync -e 'ssh -p 2222' /source usr@host:/dest

Uma alternativa para contornar isso, existem 2 arquivos que você pode usar. /etc/ssh/ssh_configou~/.ssh/config

O arquivo de configuração usa o mesmo formato que ssh_config. Apenas pode ser configurado por usuário!


9

Você também precisaria -ese usar um local de chave privada não padrão, ou seja, especificar a chave privada via -e 'ssh -i /path/to/private/key/file.pem'. Por falar nisso, portas de escuta não padrão para sshd também. Basicamente, use -ese apenas ssh user@hostnão funcionar.


É -iuma opção para ssh ou rsync no seu exemplo? E se for para ssh, funciona sem aspas simples ao redor do comando?
Izkata

Ah, certo, eu preciso das aspas. Editando minha resposta agora.
CJC

8

Você não precisa do -e ssh para usar o ssh. De fato, se você especificar o destino como usuário @ host: / caminho / para / arquivos, estará usando o ssh por padrão. Ele é deixado em a) por motivos de compatibilidade eb) casos adicionais em que você pode ter uma combinação de hosts rsyncd e ssh.


2
É necessário no RHEL 3, por exemplo, como RSYNC_RSH usa como padrão 'rsh'.
Kyle Smith

5

Depende do que foi especificado para a --with-rshopção de configuração no momento da compilação. O padrão agora é ssh se esta opção não foi especificada. Ele havia sido rsh em algum momento no passado, no entanto, mesmo que seja rsh, pode não ser necessário, pois o ssh pode ser a implementação padrão do rsh em muitas caixas. Em todas as minhas máquinas, por exemplo, readlink -f $(which rsh)mostra que rsh é realmente apenas um link simbólico apontando para / usr / sbin / ssh

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.