通过 Homebrew 安装的 Emacs 24.4 中的 Tramp 问题

通过 Homebrew 安装的 Emacs 24.4 中的 Tramp 问题

我最近通过 homebrew 安装了 Emacs 24.4,命令如下

brew install emacs --cocoa

我需要使用两步验证编辑远程集群中的文件。为此,我将通过 ControlMaster 进行的远程集群登录凭据保存在 ~/.ssh/config 中,如下所示

Host *
ForwardAgent yes
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p
ServerAliveCountMax=30
ServerAliveInterval=5

但是,当我尝试通过 tramp 编辑远程集群文件时

/ssh:username@remotecluster:~/filename

emacs 挂起并显示以下消息等待远程 shell 的提示这表明 tramp 无法识别 ssh 配置信息。

我提供了选择

(setq tramp-verbose 500)

在 ~/.emacs 中,我在 tramp 调试缓冲区中收到了以下消息,该消息一遍又一遍重复。

错误信息:

    14:19:45.324180 tramp-file-name-handler (1) # Suppress received in operation (file-exists-p
    14:19:45.324396 tramp-get-file-property (8) #  file-truename nil
    14:19:45.324550 tramp-flush-directory-property (8) # 
    14:19:45.324713 tramp-get-connection-property (7) # process-name nil
    14:19:45.324897 tramp-flush-connection-property (7) # [ssh username remotecluster nil nil] nil
    14:19:45.325106 tramp-get-connection-property (7) # process-buffer nil
    14:19:45.325306 tramp-get-file-property (8) # / file-truename nil
    14:19:45.325462 tramp-flush-file-property (8) # /
    14:19:45.325863 tramp-get-connection-property (7) # ~ undef
    14:19:45.326046 tramp-get-connection-property (7) # process-name nil
    14:19:45.326224 tramp-get-connection-property (7) # process-name nil
    14:19:45.326376 tramp-get-connection-property (7) # process-buffer nil

笔记:按照同样的程序,我不要在 Ubuntu 14.04 中的 emacs 24 中使用 tramp 时遇到任何问题。

答案1

为了进一步分析,需要调查整个调试缓冲区。将 tramp-verbose 设置为 500 看起来令人印象深刻,10 的值已经足够了 :-)

您可以直接通过电子邮件将调试缓冲区发送给我以供分析。或者使用 Tramp 邮件列表。

答案2

“等待远程 shell 的提示”

这里还有其他可能性。您的提示可能不匹配您可以发布和tramp-shell-prompt-pattern的值吗?我最近将密码添加到我的密码中以使用双因素身份验证。tramp-shell-prompt-patterntramp-password-prompt-regexp

(setq tramp-password-prompt-regexp
 (concat
  "^.*"
  (regexp-opt
   '("Passphrase" "passphrase"
     "Password" "password"
     "Passcode" "passcode) t)
  ".*:\0? *"))

我也很好奇您是否让控制主机工作了。

相关内容