code: def copy_ssh_keys_to_hosts(self, hosts, known_hosts=DEFAULT_KNOWN_HOSTS, dry=False):
          
          exceptions = []  # list of `CopySSHKeyError`
          for host in hosts:
              logger.info('[%s] Copy the SSH public key [%s]...', host.hostname, self.sshcopyid.pub_key)
              if not dry:
                  try:
                      self.copy_ssh_keys_to_host(host, known_hosts=known_hosts)
                  except (paramiko.ssh_exception.SSHException, socket.error) as ex:
                      logger.error(format_error(format_exception(ex)))
                      logger.debug(traceback.format_exc())
                      exceptions.append(CopySSHKeyError(host=host, exception=ex))
  
          if exceptions:
              raise CopySSHKeysError(exceptions=exceptions)
docs: Copy the SSH keys to the given hosts.
  
          :param hosts: the list of `Host` objects to copy the SSH keys to.
          :param known_hosts: the `known_hosts` file to store the SSH public keys.
          :param dry: perform a dry run.
          :raise msshcopyid.errors.CopySSHKeysError: