【问题标题】:How do I change the command sent by TRAMP in Emacs when using plink on Windows?在 Windows 上使用 plink 时,如何更改 Emacs 中 TRAMP 发送的命令?
【发布时间】:2017-04-05 23:53:41
【问题描述】:

我的 .emacs 中有以下内容:

(require 'tramp)
(setq tramp-default-method "plink")

当我在 Emacs 中运行 C-x C-f /plink:some_session:/ 时,其中 some_session 是 PuTTY 中已定义的会话(其中保存了所有信息,例如私钥的位置、用户名、连接类型 = ssh 等),tramp 发出以下命令(从 *Messages* 缓冲区复制):

Tramp: Sending command ‘plink -ssh -t some_session " env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ ' /bin/sh " && exit || exit’

您可以看到它将-ssh 标志传递给plink。当我连接到期望端口 22 上的 ssh 连接的远程主机时,一切正常。

但是,我有一个远程主机需要连接到端口 2222。如果我在 PuTTY 中保存会话 (some_new_session) 并尝试使用以下命令(或 PuTTY gui)进行连接,就会发生这种情况:

  • 使用 PuTTY GUI
    • 工作正常
  • plink some_new_session
    • cmd.exe 发布 - 工作正常并且能够连接
  • plink -ssh some_new_session
    • cmd.exe 发布 - 无效

我已经调试了这个问题,发现当-ssh 标志传递给plink 时,即使保存的会话状态使用端口2222,它仍然会尝试连接端口22。基本上当给定-ssh 时它会忽略保存在会话中的端口(感觉像一个错误)。

如果我尝试在 Emacs 中使用 C-x C-f /plink:some_new_session:/ 进行连接,发出的命令是:

Tramp: Sending command ‘plink -ssh -t some_new_session " env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ ' /bin/sh " && exit || exit’

我实际上不需要-ssh 标志,因为 SSH 的连接类型保存在 PuTTY 会话中。 -ssh 标志也强制连接通过端口 22,即使会话已将其保存为端口 2222。

我的问题是:

如何更改 tramp 发出的命令,使其不调用带有 -ssh 标志的 plink?

【问题讨论】:

  • 您是否尝试过修改tramp-methods 来改变它调用plink 的方式?

标签: emacs putty plink tramp


【解决方案1】:

plink 方法旨在使用主机名。如果您想(重用)会话,请使用plinkx,例如C-x C-f /plinkx:some_session:/C-x C-f /plink:some_new_session:/

【讨论】:

  • 这是很好的信息。我不知道 plinkx 方法并更改了我的默认方法 (setq tramp-default-method "plinkx") 以完全避免该问题!
【解决方案2】:

我怀疑修改以下内容可以解决问题。我在这里设置的值只是“plink”方法的默认 tramp-login-args 值。

n.b.其他使用 plink 的标准 tramp 方法是:“psftp”、“pscp”和“plinkx”。

(eval-after-load "tramp"
  '(setf (cadr (assq 'tramp-login-args (cdr (assoc "plink" tramp-methods))))
         '(("-l" "%u") ("-P" "%p") ("-ssh") ("-t") ("%h") ("\"")
           ("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '") ("/bin/sh") ("\""))))

【讨论】:

  • 这在删除("-ssh") 后有效。很棒的 e-lisp。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-17
  • 2015-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多