Vagrantの1.8.0以上でWindows10だとエラーでrsyncができない。
他のOSはわからないけど、少なくともWindows10ではムリ。
結論から書くとこれはVagrantのバグで、現時点最新の1.8.4でもなおっていない。
家とか会社でバージョンを上げるたびに毎回調べなおすのがめんどくさいので、対処法について書く。

VagrantはrsyncでホストOSとゲストOSのディレクトリ間でファイルの同期をとることができる。
しかし、前述の通りWindows10だとrsync実行時に下記のエラーが発生する。

1
2
3
Error: command-line: line 0: Bad configuration option: ControlPersist
rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at /usr/src/rsync/rsync-3.0.8/io.c(760) [sender=3.0.8]

これはIssue#6702で報告されており、そちらに対処法も書いてある。
なお、Issueのコメントを見る限りではWindows10でのみ(?)発生するようだ。

対処法はIssue#6702に書いてある通り、インストール先のrubyファイルを直接編集して修正する。

インストール先を変更していなければ当該ファイルはC:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.0/plugins/synced_folders/rsync/ディレクトリにある。
vagrant-1.8.0はインストールしたバージョンに読み替えてください。

このディレクトリ内の
helper.rb77~79行目をコメントアウトする。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Create the path for the control sockets. We used to do this
# in the machine data dir but this can result in paths that are
# too long for unix domain sockets.
controlpath = File.join(Dir.tmpdir, "ssh.#{rand(1000)}")

rsh = [
"ssh -p #{ssh_info[:port]} " +
proxy_command +
//ここの3行をコメントアウトする
#"-o ControlMaster=auto " +
#"-o ControlPath=#{controlpath} " +
#"-o ControlPersist=10m " +
"-o StrictHostKeyChecking=no " +
"-o IdentitiesOnly=true " +
"-o UserKnownHostsFile=/dev/null",
ssh_info[:private_key_path].map { |p| "-i '#{p}'" },
].flatten.join(" ")

これで会社で数ヵ月問題なく動いてます。
ある程度実績のあるOSSだとGitHub見たらだいたいIssueが上がってて解決策も書いてあるから対応が楽ですね。