package ssh import ( "golang.org/x/crypto/ssh" ) const userIDKey = "user_id" const userHandleKey = "user_handle" func AuthenticatePublicKey(store Store, conn ssh.ConnMetadata, key ssh.PublicKey) (*ssh.Permissions, error) { fingerprint := ssh.FingerprintSHA256(key) user, err := store.UserByFingerprint(fingerprint) if err != nil { return nil, err } return &ssh.Permissions{ Extensions: map[string]string{ userIDKey: user.ID.String(), userHandleKey: user.Handle, }, }, nil }