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) { | |
| 68 | 68 | return nil, &db.ErrMultiplePublicKeys{} | |
| 69 | 69 | } | |
| 70 | 70 | ||
| 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 | |
| 72 | 78 | } | |
| 73 | 79 | ||
| 74 | 80 | func (me *PgsPsqlDB) FindUser(userID string) (*db.User, error) { |
| ... | ... | @@ -107,6 +107,11 @@ func (r *SshAuthHandler) PubkeyAuthHandler(conn ssh.ConnMetadata, key ssh.Public | |
| 107 | 107 | return nil, fmt.Errorf("username is not set") | |
| 108 | 108 | } | |
| 109 | 109 | ||
| 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) | |
| 110 | 115 | err = r.DB.InsertAccessLog(&db.AccessLog{ | |
| 111 | 116 | UserID: user.ID, | |
| 112 | 117 | Service: r.Principal, |