使用ssh配置的emacs中的Tramp模式
我认为这是使用tramp的一个非常基本的问题,但它对我不起作用。 我有我的~/.ssh/config文件,它指向我的AmazonEC2机器使用ssh配置的emacs中的Tramp模式,emacs,ssh,tramp,Emacs,Ssh,Tramp,我认为这是使用tramp的一个非常基本的问题,但它对我不起作用。 我有我的~/.ssh/config文件,它指向我的AmazonEC2机器 Host amazon Hostname xxxx.amazonaws.com Port yyy User me IdentityFile ~/.ssh/ubuntu ForwardAgent yes 我可以在终端上轻松地使用ssh-amazon,然后转到amazonec2(因此我的配置是正确的),但使用的是emacs 我有:
Host amazon
Hostname xxxx.amazonaws.com
Port yyy
User me
IdentityFile ~/.ssh/ubuntu
ForwardAgent yes
我可以在终端上轻松地使用ssh-amazon,然后转到amazonec2(因此我的配置是正确的),但使用的是emacs
我有:
我总是犯这个错误
在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连接到本地机器上的虚拟机,它们也有同样的问题
非常感谢您的帮助。tramp方法
ssh1
强制ssh在ssh v1协议模式下运行,参数为-1
。ssh v1存在已知的弱点,不安全。因此,许多站点禁用ssh v1协议
您可以使用ssh-1从shell验证这一点me@xxxx.amazonaws.com
尝试其他tramp连接方法,如
ssh
、sftp
或scpx
。您可以使用C-h v tramp方法查看所有预配置的连接方法
如果Moritz Bunkus的答案不能解决问题,那么您可以使用M-x
customize变量
RETtramp verbose
RET
特别是,级别6是“发送和接收字符串”,这可能有助于您确定“等待来自远程shell的提示”是因为它没有接收到它识别的提示模式,还是因为某些更严重的故障
如果它只是接收到一个无法识别的提示,那么您可以考虑定制tramp登录提示regexp
或tramp shell提示模式
变量
(当然,如果您的ssh代理工作正常,那么登录提示应该不相关。)
如果您在Windows中运行Emacs,还可以查看以下问题和解答:
- 值得一试的是使用
sshx
连接方法。这使得tramp试图避免远程主机上的任何非标准shell配置
像这样:
C-x C-f /sshx:amazon:
谢谢你,亚马逊不接受ssh-1,但它接受ssh-2,我仍然有同样的问题。至少现在我没有做ssh1:)所以看起来我的emacs上的tramp verbose级别是9,所以它相当高。我用ssh2运行它,我得到加载tramp…done tramp:在ssh2使用nil打开连接。。。tramp:等待远程shell tramp的提示:等待60秒等待远程shell tramp的提示过程操作:登录失败hmm还有其他想法吗?如果找不到远程提示,那么我经常会遇到另一方面的shell运行类型问题。据我所知,tramp总是在远程shell为
/bin/sh
的情况下执行命令。现在,/bin/sh
可以成为几乎所有POSIX兼容shell的符号链接,当前基于Debian/Ubuntu的发行版通常使用dash
而不是bash
。另外,如果使用花哨的提示,zsh
和bash
也会出现问题。我的建议是:1。如果/bin/sh
是指向dash
的符号链接,请尝试将其更改为bash
。2.如果TERM
变量等于dumb
,那么不要在RC文件中设置一个奇特的提示。值得一看的是manssh\u config
为什么ssh/sshx没有被交换,我永远不会理解。
C-x C-f /sshx:amazon: