我认为这是使用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到我的本地机器上的虚拟盒子,他们有同样的问题。
我真的很感激任何帮助。
答案 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连接方法,例如ssh
,sftp
或scpx
。您可以使用C-h v tramp-methods
查看所有预先配置的连接方法。
答案 2 :(得分:6)
如果Moritz Bunkus的答案没有解决问题,那么你可以配置tramp输出的详细程度
M-x customize-variable
RET tramp-verbose
RET
特别是,级别6是“发送和接收的字符串”,这可能有助于您确定“等待来自远程shell的提示”是因为它没有收到它识别的提示模式,还是因为某些更多严重失败。
如果它只是接收到无法识别的提示,那么您可能会考虑自定义tramp-login-prompt-regexp
或tramp-shell-prompt-pattern
个变量。
(当然,如果您的ssh代理工作正常,则登录提示不应该相关。)
如果您在Windows中运行Emacs,那么也请参阅这些Q& As: