如何让Emacs跳转到远程Linux机器?

时间:2013-02-01 01:58:05

标签: emacs

我正在开发一台有点复杂的远程Linux机器。首先,我使用Putty登录我的办公室中也是Linux系统的跳转机器,然后我使用命令go跳到我办公室外的远程机器。使用putty时还需要一个密钥文件。 Linux jump命令是这样的:

ssh 119.11.11.11 -p 22

应根据远程机器IP更改IP。

我开发的常用方法是始终使用Emacs Tramp远程编辑文件。

我不想将我的Emacs配置文件复制到远程计算机上,因为在计算机之间同步配置文件有点困难。我也不想将文件下载到本地,因为它不方便调试。

在这个版本中,我如何使用Emacs跳转到远程机器?是否可以通过使用Cygwin,Putty或其他东西进行跳转?

我的桌面是Windows 7,而我的Emacs是24.2

1 个答案:

答案 0 :(得分:2)

假设您无法直接SSH到目标服务器,听起来您可以通过为tramp配置多跳代理来解决此问题。

我只尝试了一次,但情况略有不同,我在使用它时遇到了问题;因此,我只需指出您的文档,并将其留给更有知识的人,以便在必要时提供其他详细信息。

C-h i g (tramp) Multi-hops RET

如果可能的话,我强烈建议使用scpcrsyncc作为第二跳的方法,因为这会自动利用SSH ControlMaster来保持连接打开,从而显着提高Tramp的性能。

我不确定是否有与PuTTY / plink相同的内容?我知道Cygwin由于某些技术原因(或者至少几年前就是这种情况)无法支持ControlMaster,所以使用它可能无济于事。

另一个替代方案Cygwin的SSH和PuTTY是host a Linux(*) VM on your Windows box and run Emacs inside that(这意味着你可以使用Linux的SSH和ControlMaster)。 Cygwin可以在该实例中提供X显示。当然,这使事情变得复杂,所以我当然会首先尝试更简单的选项;但如果缺乏性能,并且您的本地PC功能相当强大,那么VM方法可能会给您带来惊喜。

*或类似的

完全忽略Tramp,sshfs通常用于在本地挂载远程文件系统,在这种情况下,Emacs甚至不知道它正在与远程服务器通信。我自己从未使用它,当然也不是on Windows,但它也值得一看。