使用ssh config在emacs中进行Tramp模式

时间:2012-03-28 04:12:43

标签: emacs ssh tramp

我认为这是使用tramp的一个非常基本的问题,但它对我不起作用。 我的〜/ .ssh / config文件指向我的amazon ec2机器

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

我可以从我的终端轻松做ssh 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到我的本地机器上的虚拟盒子,他们有同样的问题。

我真的很感激任何帮助。

3 个答案:

答案 0 :(得分:27)

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

像这样:

C-x C-f /sshx:amazon:

答案 1 :(得分:8)

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

您可以使用ssh -1 me@xxxx.amazonaws.com从shell验证此内容。

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

答案 2 :(得分:6)

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

特别是,级别6是“发送和接收的字符串”,这可能有助于您确定“等待来自远程shell的提示”是因为它没有收到它识别的提示模式,还是因为某些更多严重失败。

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

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

如果您在Windows中运行Emacs,那么也请参阅这些Q& As: