code: func (a *LocalKeyAgent) LoadKey(key Key) (*agent.AddedKey, error) {
  	agents := []agent.Agent{a.Agent}
  	if a.sshAgent != nil {
  		agents = append(agents, a.sshAgent)
  	}
  
  	// convert keys into a format understood by the ssh agent
  	agentKeys, err := key.AsAgentKeys()
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	// remove any keys that the user may already have loaded
  	err = a.UnloadKey()
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	// iterate over all teleport and system agent and load key
  	for i, _ := range agents {
  		for _, agentKey := range agentKeys {
  			err = agents[i].Add(*agentKey)
  			if err != nil {
  				a.log.Warnf("Unable to communicate with agent and add key: %v", err)
  			}
  		}
  	}
  
  	// return the first key because it has the embedded private key in it.
  	// see docs for AsAgentKeys for more details.
  	return agentKeys[0], nil
  }
docs: // LoadKey adds a key into the Teleport ssh agent as well as the system ssh
  // agent.