emacs 中的 Plink + sudo:无密码连接

Plink + sudo in emacs: connection without password

我想用 emacs 修改远程服务器上的文件,我只能通过 sudo su - username 访问而无需密码。

我目前可以使用以下方法修改此服务器上我个人 space 的文件:

C-x C-f /plink:me@server:/path/file

我读到 there 我可以使用以下命令以其他用户身份打开文件:

C-x C-f /plink:me@server|sudo:other@server:/path/file

问题是使用这种语法时,emacs 要求我输入密码 Password for /sudo:other@server:,但我没有。提供空密码不起作用,提供我的用户密码也不起作用。

有没有办法像 sudo su - other 那样配置 tramp 连接到其他用户而无需输入密码?

PS:我在 Windows10.

上使用 emacs 28.1

您可以指定一个新的 TRAMP 方法,派生自 sudo 方法:

(add-to-list 'tramp-methods
             `("mysudo"
               (tramp-login-program        "sudo")
               (tramp-login-args           (("su") ("-" "%u")))
               (tramp-remote-shell         ,tramp-default-remote-shell)
               (tramp-remote-shell-login   ("-l"))
               (tramp-remote-shell-args    ("-c"))
               (tramp-connection-timeout   10)
               (tramp-session-timeout      300)))

然后你可以像

一样打开远程文件
C-x C-f /plink:me@server|mysudo:other@server:/path/file

免责声明:未经测试。