現在、ポートを指定するために-e 'ssh -p 10022'
オプションを指定してrsyncを使用しています。
~/.ssh/config
にはすでにssh設定があります。
Host myvps
HostName example.com
User ironsand
Port 10022
この構成をrsyncから簡単に使用できますか?または、~/.rsync
を作成して、サーバーを指定するためのデフォルトのポートを設定できますか?
ホスト名として"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エラー:原因不明のエラー(コード255) /SourceCache/rsync/rsync-42/rsync/io.c(452)[sender = 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が機能します。しかし、すべての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 [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]
これは機能します
[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。非標準パスで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。 Sudoを使用してSSHプロセスを実行します。
Sudo/usr/local/bin/rsync -az -e "Sudo -u user ssh" /var/data/sources/data.tar.gz vm-app01:/ home/user