我正在尝试在Emacs中编辑远程文件,但我无法从the documentation和previous SO questions进行操作。
我在各个地方远程工作,我想在服务器Foo上编辑文件。 Server Foo不能直接从Internet访问,但服务器Bar是,而Foo接受来自Bar的连接。我可以指望到达Bar,Bar可以指望到达Foo。
Tramp文档告诉我,我需要添加到Tramp的代理列表来执行此操作,并且它应如下所示:
(add-to-list 'tramp-default-proxies-alist
("foo_host" "seanm" "/ssh:seanm@bar_host"))
然而,当我尝试时,它不起作用,我收到难以理解的错误信息。
我怎样才能明确地引用Foo?没有DNS服务器知道如何从其主机名中查找Foo,而Foo的IP地址位于10.0.0.0/8私有空间中。我不想通过该IP地址引用Foo,因为这可能会与我可能访问的其他10.0.0.0/8网络中的主机发生冲突。作为一个kludge,我将Foo添加到Bar的/ etc / hosts文件中,但这似乎不起作用。有更好的解决方案吗?
我需要遵守哪些引用规则?我看到的例子都使用“双引号”和“勾选单引号”,后者显然需要双反斜杠转义。我不明白那里发生了什么 - 似乎有多层解析,这个字符串将被推翻。
在尝试对此进行修改时,我收到的错误消息相当于“您无法在该方案中使用该远程访问方法”。如何设置第二个代理方法让我相当于C-x C-f /su::/path/to/file
?
与之前的多跳语法相比,这一切看起来都非常痛苦。
后来:我能够正确地进行多层转义,以便emacs正确“听到”主机的名称。但是,我无法在一秒钟之内获得任何跳跃才能正常工作,这在功能上非常令人失望。
答案 0 :(得分:1)
正确的答案是使用Host,HostAlias和ProxyCommand指令修改我的SSH配置。