code: func NewSSHAgentProvider(confs []AgentConfig) (session.Attachable, error) {
  	m := map[string]source{}
  	for _, conf := range confs {
  		if len(conf.Paths) == 0 || len(conf.Paths) == 1 && conf.Paths[0] == "" {
  			conf.Paths = []string{os.Getenv("SSH_AUTH_SOCK")}
  		}
  
  		if conf.Paths[0] == "" {
  			return nil, errors.Errorf("invalid empty ssh agent socket, make sure SSH_AUTH_SOCK is set")
  		}
  
  		src, err := toAgentSource(conf.Paths)
  		if err != nil {
  			return nil, err
  		}
  		if conf.ID == "" {
  			conf.ID = sshforward.DefaultID
  		}
  		if _, ok := m[conf.ID]; ok {
  			return nil, errors.Errorf("invalid duplicate ID %s", conf.ID)
  		}
  		m[conf.ID] = src
  	}
  
  	return &socketProvider{m: m}, nil
  }
docs: // NewSSHAgentProvider creates a session provider that allows access to ssh agent