Hi! In a "normal" emacs session (no `-Q`) with your new verison of
`auth-info-password`, I was asked for a label but not for a password. In my
`*Messages*` buffer I see:

```
Tramp: Sending command ‘exec env SUDO_PROMPT=P""a""s""s""w""o""r""d"": sudo
-u root -s -H /bin/sh  -i’
Tramp: Sending Password
Secret Service session: /org/freedesktop/secrets/session/s67
auth-source-search: found 0 results (max 1) matching (:max 1 :user "ethan"
:host "black-diamond" :port "sudo" :require (:secret :user) :create t)
auth-source-search: found 1 results (max 1) matching (:max 1 :host
"black-diamond" :port "sudo")
imenu unavailable: "imenu unavailable", "This buffer cannot use
‘imenu-default-create-index-function’" [3 times]
auth-source-search: CREATED 1 results (max 1) matching (:max 1 :user
"ethan" :host "black-diamond" :port "sudo" :require (:secret :user) :create
t)
```

Both mine and yours have a search with `:host` and `:port` but no `:user`,
which is the behavior I'm trying to inquire about. For `sudo`, that seems
like it might be OK, but for `ssh`, that seems very strange?

No secret was created for `ethan@black-diamond` so far as I can tell. (I'm
not sure about "GNOME Remote Desktop RDP credentials" -- that's new but I
doubt it's related.)

```
(secrets-list-items "Login")
("Password for '' on 'gh:github.com'" "root@black-diamond" "Github API key
for forge" "root@black-diamond" "GNOME Remote Desktop RDP credentials")
```

In `emacs -Q`, I tried loading the new version of `auth-info-password` but
I'm not sure I did it right. I did the following in `*scratch*`:

```
(setq auth-sources (cons "secrets:Login" auth-sources))
("secrets:Login" "~/.authinfo" "~/.authinfo.gpg" "~/.netrc")

(setq auth-source-debug t
      auth-source-save-behavior 'ask
      secrets-debug t)
t

(defun auth-info-password (auth-info)
  "Return the :secret password from the AUTH-INFO."
  (let ((secret (plist-get auth-info :secret)))
    (while (functionp secret)
      (setq secret (funcall secret)))
    secret))
auth-info-password
```

... then C-x C-f /sudo:: RET. This time I was asked for a password for
`ethan@black-diamond` but no label. No entry was created in my Login
secrets here either. The only relevant line in `*Messages*` is `Tramp:
Opening connection nil for root@black-diamond using sudo...done`. I'm
guessing I did something wrong, probably around lazy loading of modules.
Happy to try more things though!

Ethan




On Sun, Jun 16, 2024 at 5:17 AM Michael Albinus <michael.albi...@gmx.de>
wrote:

> Ethan Glasser-Camp <ethan.glasser.c...@gmail.com> writes:
>
> Hi Ethan,
>
> > Hi! I was using the Seahorse application to identify the user, host
> > and port of each secret, but I did the same thing with M-x
> > secrets-show-secrets and saw pretty much the same thing:
> >
> > ```
> > [-] Login
> >  |-[+] Password for ’’ on ’gh:github.com’
> >  |-[-] root@black-diamond
> >  |  |-  password:   *********************************** [Show
> > password]
> >  |  |-  host:       black-diamond
> >  |  |-  port:       sudo
> >  |  |-  user:       root
> >  |  `-  xdg:schema: org.freedesktop.Secret.Generic
> >  |-[+] Github API key for forge
> >  `-[-] root@black-diamond
> >     |-  password:   *********************************** [Show
> > password]
> >     |-  host:       black-diamond
> >     |-  port:       sudo
> >     |-  user:       root
> >     `-  xdg:schema: org.freedesktop.Secret.Generic
> > [+] session
> > ```
> >
> > Here's the same result using elisp directly:
> >
> > ```
> > (secrets-item-path "Login" "root@black-diamond")
> > "/org/freedesktop/secrets/collection/login/2"
> >
> > (secrets-get-item-properties
> > "/org/freedesktop/secrets/collection/login/2")
> > (("Locked") ("Attributes" ("host" "black-diamond") ("port" "sudo")
> > ("user" "root") ("xdg:schema" "org.freedesktop.Secret.Generic"))
> > ("Label" . "root@black-diamond") ("Type" .
> > "org.freedesktop.Secret.Generic") ("Created" . 1663727104) ("Modified"
> > . 1663727104))
> >
> > ;; I also wanted to check the other secret. I wasn't sure exactly what
> > ID it was and since they both have the same label, I didn't think I
> > could use `secrets-item-path`. I just tried guessing until I found it
> > (secrets-get-item-properties
> > "/org/freedesktop/secrets/collection/login/1")
> > (("Locked") ("Attributes" ("host" "black-diamond") ("port" "sudo")
> > ("user" "root") ("xdg:schema" "org.freedesktop.Secret.Generic"))
> > ("Label" . "root@black-diamond") ("Type" .
> > "org.freedesktop.Secret.Generic") ("Created" . 1663726391) ("Modified"
> > . 1663726391))
> > ```
> >
> > Thanks for your patience,
>
> This looks proper, and both entries have the "user" property "root". So
> they shouldn't be taken into account when searching for the user "ethan".
>
> I suppose your password is taken from soewhere in the cache. Could you,
> please, open a *new* Emacs session, and run there
>
> --8<---------------cut here---------------start------------->8---
> (setq auth-source-debug t
>       auth-source-save-behavior 'ask
>       secrets-debug t)
> --8<---------------cut here---------------end--------------->8---
>
> Then do your 'C-x C-f /sudo::'. You should be asked for the password,
> and in the *Messages* there shall be something like (from my example)
>
> --8<---------------cut here---------------start------------->8---
> Secret Service session: /org/freedesktop/secrets/session/s11
> auth-source-search: found 0 results (max 2305843009213693951) matching
> (:port "sudo" :require (:port) :max 2305843009213693951)
> auth-source-search: found 0 CACHED results matching (:port "sudo" :require
> (:port) :max 2305843009213693951) [15 times]
> Tramp: Opening connection for root@gandalf using sudo...
> auth-source-search: found 0 results (max 1) matching (:max 1 :user
> "albinus" :host "gandalf" :port "sudo" :require (:secret :user) :create t)
> auth-source-search: found 0 results (max 1) matching (:max 1 :host
> "gandalf" :port "sudo")
> auth-source-search: CREATED 1 results (max 1) matching (:max 1 :user
> "albinus" :host "gandalf" :port "sudo" :require (:secret :user) :create t)
> Save auth info to secrets collection session? [y/n/N/?] y
> secrets-create-item: wrote 1 new item to session
> Saved new authentication information to session
> --8<---------------cut here---------------end--------------->8---
>
> And the new entry shall be in your "Login" collection.
>
> > Ethan
>
> Best regards, Michael.
>

Reply via email to