Hrm, I'm worried that we would create a provisioner.json for no reason if there's no ssh key nor any SMT config.

I suggest reworking things to the following:
 - first for loop to copy files if they exist
 - then the magic that is currently after this block to update provisioner.json and dns.json for ssh keys / dns config
 - second loop to add the required attributes with json-edit for the files that really do exist in /var/lib/crowbar/config/