16

我认为这是使用流浪汉的非常基本的问题,但它对我不起作用。我的 ~/.ssh/config 文件指向我的亚马逊 ec2 机器

Host amazon
   Hostname xxxx.amazonaws.com
   Port yyy
   User me
   IdentityFile ~/.ssh/ubuntu
   ForwardAgent yes

我可以轻松地从终端执行 ssh amazon,然后转到 amazon ec2(所以我的配置是正确的),但在 emacs 中我这样做:

C-x C-f /ssh1:amazon:

我总是在 Aquamacs 中收到此错误:

Process *tramp/ssh1 amz* exited abnormally with code 255

在 Emacs 中:

tramp: Opening connection at amz using ssh1...
tramp: Waiting for prompts from remote shell
tramp: Waiting 60s for prompt from remote shell
tramp-process-actions: Login failed

我还有其他 ssh 配置,它们通过 ssh 连接到我本地机器上的虚拟机,它们也有同样的问题。

我真的很感激任何帮助。

4

3 回答 3

39

值得尝试的一件事是使用sshx连接方法。这使得 tramp 尽量避免远程主机上的任何非标准 shell 配置。

像这样:

C-x C-f /sshx:amazon:
于 2012-06-28T09:56:34.913 回答
10

tramp 方法ssh1使用参数强制 ssh 在 ssh v1 协议模式下运行-1。ssh v1 有已知的弱点并且不安全。因此,许多站点禁用 ssh v1 协议。

您可以在 shell 中使用ssh -1 me@xxxx.amazonaws.com.

尝试其他流浪汉连接方法,例如sshsftpscpx。您可以使用 . 查看所有预配置的连接方法C-h v tramp-methods

于 2012-03-28T09:13:36.133 回答
6

如果 Moritz Bunkus 的回答没有解决问题,那么您可以配置 tramp 输出的详细程度
M-x customize-variable RET tramp-verbose RET

特别是,第 6 级是“发送和接收字符串”,它可以帮助您确定“等待来自远程 shell 的提示”是因为它没有收到它识别的提示模式,还是因为一些更严重的故障。

如果它只是收到它无法识别的提示,那么您可能会考虑自定义tramp-login-prompt-regexportramp-shell-prompt-pattern变量。

(当然,如果您的 ssh 代理工作正常,那么登录提示不应该是相关的。)

如果您在 Windows 中运行 Emacs,那么还可以查看这些问答:

于 2012-03-28T10:50:06.993 回答