Commit 825fa62

Eric Bower  ·  2026-01-16 22:55:04 -0500 EST
parent 4dce36e
feat(ssh): find pubkey name and use as identity for access logs
2 files changed,  +12, -1
+7, -1
......@@ -68,7 +68,13 @@ func (me *PgsPsqlDB) FindUserByPubkey(key string) (*db.User, error) {
6868 return nil, &db.ErrMultiplePublicKeys{}
6969 }
7070
71- return me.FindUser(pk[0].UserID)
71+ user, err := me.FindUser(pk[0].UserID)
72+ if err != nil {
73+ return nil, err
74+ }
75+
76+ user.PublicKey = &pk[0]
77+ return user, nil
7278 }
7379
7480 func (me *PgsPsqlDB) FindUser(userID string) (*db.User, error) {
+5, -0
......@@ -107,6 +107,11 @@ func (r *SshAuthHandler) PubkeyAuthHandler(conn ssh.ConnMetadata, key ssh.Public
107107 return nil, fmt.Errorf("username is not set")
108108 }
109109
110+ if user.PublicKey != nil && user.PublicKey.Name != "" {
111+ authed.Identity = user.PublicKey.Name
112+ }
113+
114+ log.Info("inserting access log", "principal", r.Principal, "identity", authed.Identity)
110115 err = r.DB.InsertAccessLog(&db.AccessLog{
111116 UserID: user.ID,
112117 Service: r.Principal,