回答:
"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を解決できませんでした:nodenameまたはservnameが提供されていません、または不明rsync:接続が予期せず閉じられました(これまでに0バイトを受信)[送信者] rsyncエラー:/ SourceCache / rsync / rsync- 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"を使用して構成ファイルを強制的に読み込むことで、名前解決をすり抜けることができました
これは1つのエラーを過ぎて別のエラーになります。許可が拒否されました(publickey、gssapi-keyex、gssapi-with-mic)。ssh_exchange_identification:リモートホストによって接続が閉じられました
また、接続で-iとuser @を明示的に設定しようとしましたが、同じエラーが発生しました。
編集
別のデータポイント。名前の代わりにピボットvm(ジャンプホスト)のフローティングIPを使用すると、vm-pivot rsyncが機能します。しかし、-e "ssh"ですべてのssh / configを明示的にダンプしても機能しません。詳細:ローカル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を使用しようとする場合。そこには2つのオプションがあります。内部コマンドで同じファイルを直接提供するか、動的にハックします。それについての私のブログ投稿で詳細な説明を見ることができます: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」はどのように解決されますか?ホストファイル、勝ち、NIS、NSS?エイリアスはありますか?ドメイン内にいますか?それは確かに「単純な」DNS問題のように見えます。