Answers:
指定"myvps"
为主机名。
rsync /var/bar myvps:/home/foo ...
这对我不起作用。我在〜/ .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:无法解析主机名vm-app01:提供了节点名或服务名,或者未知rsync:连接意外关闭(到目前为止已接收0个字节)[发送方] rsync错误:/ SourceCache / rsync / rsync-处的原因不明的错误(代码255) 42 / rsync / io.c(452)[发送者= 2.6.9]
但是,这很好
[kbroughton@kbroughton:project + (develop)] ssh vm-app01
Last login: Thu Apr 17 12:10:37 2014 from 10.a.b.c
编辑,通过强制rsync ssh使用-F sudo rsync -az -e“ ssh -F /Users/kbroughton/.ssh/config”来加载配置文件,可以克服名称解析问题
这超越了一个错误,但又到了另一个错误。权限被拒绝(公钥,gssapi-keyex,gssapi-with-mic)。ssh_exchange_identification:连接被远程主机关闭
还尝试在连接中显式设置-i和user @,但是会发生相同的错误。
编辑
另一个数据点。如果我使用枢轴vm(跳转主机)的浮动ip而不是其名称vm-pivot rsync可以工作。但是将所有我的ssh / config明确转储到-e“ ssh”中是行不通的。详细信息:本地mac,升级到rsync 3.1.0,远程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 user@10.x.y.z:/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]
这有效
[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 user@10.x.y.z:/home/user
@darKoram。对于用非标准路径调用ssh并尝试在ProxyCommand中使用ssh的情况,这是有问题的,因为没有继承。您有两种选择:直接在内部命令中提供相同文件,或动态修改文件。您可能会在我的博客文章中找到有关此内容的详细说明:http : //hubbitus.info/wiki/Blog : Ssh_forwarding_with_same_config_file_hack
不久之后,您的情况应有助于进行以下配置:
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
“ vm-app01”的完整DNS名称是什么?它必须是公共的,因为您声称无需rsync就可以在ssh内到达它。但是,您希望ssh通过“ 21ct-dev1- *”模式来捕获主机。我真的看不到这怎么可以以任何方式工作。如果尝试模式化主机名,则它应类似于以下内容:
Host *.21ct-dev1-domain.tld
然后,rsync的调用应如下所示:
rsync -e "ssh" /local/path/ vm-app01.21ct-dev1-domain.tld:/remote/path/
如何解决“ vm-app01”?托管文件,wins,nis,nss?你有别名吗?您在域中吗?它肯定看起来像一个“简单”的DNS问题。