Emacs "Tramp" authinfo.gpg 中的 sudo 设置:机器特定的 sudo 认证

Emacs "Tramp" sudo setup in authinfo.gpg : machine specific sudo accreditation

我有一个通过 ssh 远程文件的书签:

/ssh:remoteuser@remote-server|sudo:remoteuser:/etc/apache2/apache2.conf

在我的 authinfo.gpg 文件中对这个条目进行了多次修改后,允许流浪汉在远程服务器上为 "remoteuser" 提供 sudo 密码:

machine remoteuser port sudo login root password remote-user-sudopassword

我遇到的问题是此 authinfo 行并非特定于远程服务器:host/machinename 实际上是远程用户 ID。这是什么意思?这意味着 "remoteuser" 的 sudo 密码必须在 remoteuser 操作的所有机器上都相同。我可以在 auth-sources/tramp 中做一些 alias/mapping 以使我能够为 "remoteuser" 的 tramp sudo 认证设置不同的 authinfo 行吗?

您的远程文件名错误。必须是

/ssh:remoteuser@remote-server|sudo:remote-server:/etc/apache2/apache2.conf

即文件名两部分的主机名必须相同。这会将您的 .authinfo.gpg 条目更改为

machine remote-server port sudo login root password remote-user-sudopassword

请注意,在即将发布的 Emacs 27.1(包含 Tramp 2.4)中,将检查主机名是否在这种多跳匹配中。