tramp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tramp (2.6.2.29.2 nil/nil); wrong-type-argument "stringp #[0 \\300\\


From: Ethan Glasser-Camp
Subject: Re: tramp (2.6.2.29.2 nil/nil); wrong-type-argument "stringp #[0 \\300\\207 [my actual password.."
Date: Wed, 12 Jun 2024 13:19:03 -0400

On Wed, Jun 12, 2024 at 12:56 PM Michael Albinus <michael.albinus@gmx.de> wrote:
This will appear with Tramp 2.7.1 on GNU ELPA, which is scheduled for
release end of June. And of course with Emacs 30, but this is months
away.

Ah, thanks! I made a note to take the workaround out when I get Tramp 2.7.1.
 
> I'm also surprised to see that no additional `ethan@black-diamond`
> entry was created in GNOME Secrets.

Is that so? That means, you have only the `root@black-diamond` entry in
GNOME secrets? Perhaps this is due to your auth-sources config:

--8<---------------cut here---------------start------------->8---
(setq auth-sources
    '(default
       "secrets:session"
       "secrets:Login"
       "~/.authinfo.gpg"))
--8<---------------cut here---------------end--------------->8---

"secrets:session" is a temporary collection only, which is not kept
permanently.

Ah, I just copied that from the previous post in tramp-devel and only used it in `emacs -Q` for reproduction purposes. My actual `auth-sources` is `("secrets:Login" "~/.authinfo" "~/.authinfo.gpg" "~/.netrc")`.
 
> Out of curiosity, how does fixing this fix the larger issue? I see
> that the successful tramp connection says `root@black-diamond`. Is
> there some kind of fallback behavior in either tramp or `auth-source`
> that tries `root@` after trying `ethan@`?

Tramp says `root@black-diamond` connection because this is what you have
told it to open for the sudo method. However, Tramp knows, that the sudo
method requires the password of the local user, and so it works with
`ethan@black-diamond`. Using `root@@black-diamond' doesn't make sense
for sudo.

Conceptually this is always right for sudo, but there was an error in
Tramp that it has asked auth-source-search for `root@black-diamond` in
the past. This was fixed in Tramp 2.6 (the version you get with Emacs
29), so an entry `root@black-diamond` was created likely using an older
Tramp version.

Ah, I see. I saw an entry in Emacs NEWS I saw when researching the issue with the title "Proper password prompts for methods "doas", "sudo" and "sudoedit". Is this the same subject? Both entries in GNOME Secrets have `root@black-diamond` as the "label" and `root` as the user.
 
> I forgot to mention this in my original email last
> night, but when I tried doing `(auth-source-search :user
> "any-user-name" :host "black-diamond" :require '(:secret :user) :
> create t)`, I would get a "match", always with my same password
> visible in the response. I see that `auth-source-secrets-create`
> redoes the query using `host` and `port` but without `user` or any
> other parameters.. this seems a little strange? For sudo, I think
> using the user password "as" the root password makes sense, but if I
> had multiple accounts on a single host I would be surprised for their
> passwords to get mixed up.

When Tramp creates a password entry for whatever auth-source.el backend,
it always uses the :port entry (which means the Tramp method, in
auth-source speech). So the entries are unique. When *searching*, it
tries first for an entry with all :host, :user and :port items, and if
this fails, it tries w/o :port, in case the user has created such an
entry manually.

I was referring specifically to this line in `auth-source-secrets-create`:

```
(let* (...
         (current-data (car (auth-source-search :max 1
                                                :host host
                                                :port port)))
```

It seems like this would be liable to grab the secret for another user on the same host/port. For example, if I was using the `ssh` method, then `host` and `port` would not be unique, right? In my usage, with `sudo`, that's fine. Of course, I only skimmed the function and I may be misunderstanding.

Thanks,

Ethan


reply via email to

[Prev in Thread] Current Thread [Next in Thread]