我最近通过 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-pattern
tramp-password-prompt-regexp
(setq tramp-password-prompt-regexp
(concat
"^.*"
(regexp-opt
'("Passphrase" "passphrase"
"Password" "password"
"Passcode" "passcode) t)
".*:\0? *"))
我也很好奇您是否让控制主机工作了。