The CloudConfig.Save() did not load the metadata resulting in the diff function always thinking the SSH keys were new. This would cause them to be saved over and over again just getting bigger and bigger.