Especifique "myvps"
como o nome do host.
rsync /var/bar myvps:/home/foo ...
Agora estou usando o rsync com a opção -e 'ssh -p 10022'
para especificar a porta.
Já defini o ssh em ~/.ssh/config
.
Host myvps
HostName example.com
User ironsand
Port 10022
Posso usar essa configuração do rsync facilmente?
Ou posso criar ~/.rsync
e definir uma porta padrão para especificar servidor?
Isso não funcionou para mim. Tenho jump hosting no meu ~ / .ssh / config
Host 10.x.y.z
User cloud-user
HostName vm-pivot
IdentityFile /path_to_vm_key
Host 21ct-dev1-*
User cloud-user
HostName %h.example.com
ProxyCommand ssh 10.x.y.z -W %h:%p
IdentityFile /path_to_vm_key
rsync -e "ssh" local_path vm-app01:/remote_path
ssh: Não foi possível resolver o nome do host vm-app01 : nodename nem servname fornecidos ou não são conhecidos rsync: conexão inesperadamente fechada (0 bytes recebidos até agora) [remetente] Erro de rsync: erro inexplicável (código 255) em /SourceCache/rsync/rsync-42/rsync/io.c(452) [sender = 2.6.9]
No entanto, isso funciona bem
[kbroughton@kbroughton:project + (develop)] ssh vm-app01
Last login: Thu Apr 17 12:10:37 2014 from 10.a.b.c
Editar, consegui passar a resolução de nomes, forçando o rsync ssh a carregar um arquivo de configuração com -F sudo rsync -az -e "ssh -F / Usuários / kbroughton /.ssh / config"
Isso passa de um erro, mas para outro. Permissão negada (publickey, gssapi-keyex, gssapi-with-mic). ssh_exchange_identification: Conexão fechada pelo host remoto
Também tentei definir explicitamente -i e user @ na conexão, mas ocorreu o mesmo erro.
EDITAR
Outro ponto de dados. Se eu usar o ip flutuante do pivot vm (host de salto) em vez de seu nome vm-pivot, o rsync funciona. Mas explicitamente despejar todos os meus ssh / config no -e "ssh" não funciona. Detalhes: Mac local, atualizado para o rsync 3.1.0, remoto centos rsync 3.0.9.
[kbroughton@kbroughton:project + (develop)] sudo /usr/local/bin/rsync -az -e "ssh -F /Users/kbroughton/.ssh/config -i /Users/kbroughton/.ssh/identities/vm_key -W 10.x.y.z:22" /var/data/sources/data.tar.gz user@vm-pivot:/home/user
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
ssh_exchange_identification: Connection closed by remote host
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.0]
[kbroughton@kbroughton:project + (develop)] sudo /usr/local/bin/rsync -az -e "ssh -F /Users/kbroughton/.ssh/config -i /Users/kbroughton/.ssh/identities/vm_key -W 10.x.y.z:22" /var/data/sources/data.tar.gz [email protected]:/home/user
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(181) [sender=3.1.0]
Isso funciona
[kbroughton@kbroughton:project + (develop)] sudo /usr/local/bin/rsync -az -e "ssh -F /Users/kbroughton/.ssh/config -i /Users/kbroughton/.ssh/identities/vm_key" /var/data/sources/data.tar.gz [email protected]:/home/user
@darKoram. Para casos em que você invoca ssh com caminho não padrão e tente usar ssh no ProxyCommand que é um problema porque não há herança. Você tem duas opções lá: direto fornecer o mesmo arquivo no comando interno, ou dinamicamente hackear. Você pode procurar uma descrição detalhada em meu post sobre isso: link
Em breve, sua situação deve ajudar na configuração como:
Host 21ct-dev1-*
User cloud-user
HostName %h.example.com
ProxyCommand ssh $( egrep -z -A1 '^-F$' /proc/$PPID/cmdline ) 10.x.y.z -W %h:%p
IdentityFile /path_to_vm_key
@darKoram. Execute o processo SSH com o sudo:
sudo / usr / local / bin / rsync -az -e "sudo -u usuário ssh" /var/data/sources/data.tar.gz vm-app01: / home / user