code: func findIDPublicKey(id string) []byte {
  	for _, d := range idKeyData(id) {
  		signer, err := ssh.ParsePrivateKey(d)
  		if err == nil {
  			log.Println("[DEBUG] parsed id private key")
  			pk := signer.PublicKey()
  			return pk.Marshal()
  		}
  
  		// try it as a publicKey
  		pk, err := ssh.ParsePublicKey(d)
  		if err == nil {
  			log.Println("[DEBUG] parsed id public key")
  			return pk.Marshal()
  		}
  
  		// finally try it as an authorized key
  		pk, _, _, _, err = ssh.ParseAuthorizedKey(d)
  		if err == nil {
  			log.Println("[DEBUG] parsed id authorized key")
  			return pk.Marshal()
  		}
  	}
  
  	return nil
  }
docs: // make an attempt to either read the identity file or find a corresponding
  // public key file using the typical openssh naming convention.
  // This returns the public key in wire format, or nil when a key is not found.