code: def add_to_known_hosts(self, hosts, known_hosts=DEFAULT_KNOWN_HOSTS, dry=False):
          
          to_add = []
          with open(known_hosts) as fh:
              known_hosts_set = set(line.strip() for line in fh.readlines())
  
          cmd = ['ssh-keyscan'] + [host.hostname for host in hosts]
          logger.debug('Call: %s',  ' '.join(cmd))
          p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
          stdout, stderr = p.communicate()
          for line in stdout.splitlines():
              line = line.strip()
              logger.info('[%s] Add the remote host SSH public key to [%s]...', line.split(' ', 1)[0], known_hosts)
              if line not in known_hosts_set:
                  known_hosts_set.add(line)
                  to_add.append('{0}\n'.format(line))
  
          if not dry:
              with open(known_hosts, 'a') as fh:
                  fh.writelines(to_add)
docs: Add the remote host SSH public key to the `known_hosts` file.
  
          :param hosts: the list of the remote `Host` objects.
          :param known_hosts: the `known_hosts` file to store the SSH public keys.
          :param dry: perform a dry run.