code: func (fs *FSLocalKeyStore) AddKey(host, username string, key *Key) error {
  	dirPath, err := fs.dirFor(host, true)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  	writeBytes := func(fname string, data []byte) error {
  		fp := filepath.Join(dirPath, fname)
  		err := ioutil.WriteFile(fp, data, keyFilePerms)
  		if err != nil {
  			fs.log.Error(err)
  		}
  		return err
  	}
  	if err = writeBytes(username+fileExtCert, key.Cert); err != nil {
  		return trace.Wrap(err)
  	}
  	if err = writeBytes(username+fileExtTLSCert, key.TLSCert); err != nil {
  		return trace.Wrap(err)
  	}
  	if err = writeBytes(username+fileExtPub, key.Pub); err != nil {
  		return trace.Wrap(err)
  	}
  	if err = writeBytes(username, key.Priv); err != nil {
  		return trace.Wrap(err)
  	}
  	return nil
  }
docs: // AddKey adds a new key to the session store. If a key for the host is already
  // stored, overwrites it.