code: func (d *Driver) generateKeyBundle() error {
  	log.Debugf("Creating Tar key bundle...")
  
  	magicString := "boot2docker, this is vmware speaking"
  
  	tf, err := os.Create(d.ResolveStorePath("userdata.tar"))
  	if err != nil {
  		return err
  	}
  	defer tf.Close()
  	var fileWriter = tf
  
  	tw := tar.NewWriter(fileWriter)
  	defer tw.Close()
  
  	// magicString first so we can figure out who originally wrote the tar.
  	file := &tar.Header{Name: magicString, Size: int64(len(magicString))}
  	if err := tw.WriteHeader(file); err != nil {
  		return err
  	}
  	if _, err := tw.Write([]byte(magicString)); err != nil {
  		return err
  	}
  	// .ssh/key.pub => authorized_keys
  	file = &tar.Header{Name: ".ssh", Typeflag: tar.TypeDir, Mode: 0700}
  	if err := tw.WriteHeader(file); err != nil {
  		return err
  	}
  	pubKey, err := ioutil.ReadFile(d.publicSSHKeyPath())
  	if err != nil {
  		return err
  	}
  	file = &tar.Header{Name: ".ssh/authorized_keys", Size: int64(len(pubKey)), Mode: 0644}
  	if err := tw.WriteHeader(file); err != nil {
  		return err
  	}
  	if _, err := tw.Write([]byte(pubKey)); err != nil {
  		return err
  	}
  	file = &tar.Header{Name: ".ssh/authorized_keys2", Size: int64(len(pubKey)), Mode: 0644}
  	if err := tw.WriteHeader(file); err != nil {
  		return err
  	}
  	if _, err := tw.Write([]byte(pubKey)); err != nil {
  		return err
  	}
  	err = tw.Close()
  	return err
  }
docs: // Make a boot2docker userdata.tar key bundle