There is a maximum filesize that you're allowed to provide when you're injecting "personality" files onto a newly launched server, which you can find from the limits endpoint. Unfortunately, I don't see an easy way to query that from Vagrant, but I'd expect that's what you're hitting. Mine is 1000 bytes!
What I'd recommend instead is to upload your public key as a named keypair -- which you can do through the web UI or the API -- and give Vagrant the keypair name:
config.vm.provider :rackspace do |rs|
rs.username = "xxxxxx"
rs.api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
rs.flavor = "1 GB Performance"
rs.image = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
rs.rackspace_region = "dfw"
rs.server_name = "test-vagrant"
rs.key_name = "mykey"
end