repos / pico

pico services mono repo
git clone https://github.com/picosh/pico.git

commit
825fa62
parent
4dce36e
author
Eric Bower
date
2026-01-16 22:55:04 -0500 EST
feat(ssh): find pubkey name and use as identity for access logs
2 files changed,  +12, -1
M pkg/apps/pgs/db/postgres.go
+7, -1
 1@@ -68,7 +68,13 @@ func (me *PgsPsqlDB) FindUserByPubkey(key string) (*db.User, error) {
 2 		return nil, &db.ErrMultiplePublicKeys{}
 3 	}
 4 
 5-	return me.FindUser(pk[0].UserID)
 6+	user, err := me.FindUser(pk[0].UserID)
 7+	if err != nil {
 8+		return nil, err
 9+	}
10+
11+	user.PublicKey = &pk[0]
12+	return user, nil
13 }
14 
15 func (me *PgsPsqlDB) FindUser(userID string) (*db.User, error) {
M pkg/shared/ssh.go
+5, -0
 1@@ -107,6 +107,11 @@ func (r *SshAuthHandler) PubkeyAuthHandler(conn ssh.ConnMetadata, key ssh.Public
 2 		return nil, fmt.Errorf("username is not set")
 3 	}
 4 
 5+	if user.PublicKey != nil && user.PublicKey.Name != "" {
 6+		authed.Identity = user.PublicKey.Name
 7+	}
 8+
 9+	log.Info("inserting access log", "principal", r.Principal, "identity", authed.Identity)
10 	err = r.DB.InsertAccessLog(&db.AccessLog{
11 		UserID:   user.ID,
12 		Service:  r.Principal,