我想知道是否可以通过多跳SSH隧道编辑Sublime Text 3的文件。在我的特殊情况下,我有我的Mac(我们称之为A)和两台Linux机器:B和C.文件位于C中,我用我的机器访问它们:
A -> B -> C
我发现这些文章可以提供帮助,但他们只讨论在B中编辑文件。
How to open remote files in sublime text 3
Editing files remotely via SSH on SublimeText 3
根据这些文章,我可以编辑B中的文件,在远程机器中安装rsub
,在Sublime中编辑插件。我试图在C中执行此操作(是的,我知道它不是那么有用,但谁知道呢?但我得到了错误:
user@remote-C:~$ rsub
/usr/local/bin/rsub: connect: Connection refused
/usr/local/bin/rsub: line 327: /dev/tcp/localhost/52698: Connection refused
Unable to connect to TextMate on localhost:52698
我很高兴知道是否有办法实现这一目标。提前谢谢。
答案 0 :(得分:2)
我会回答自己。解决方案是在A
的ssh配置文件中使用C
在B
到ProxyCommand
之间使用~/.ssh/config
进行SSH隧道连接。
我添加了这些内容:
Host myMachineC
HostName NAME_OF_MACHINE_C
ProxyCommand ssh USER_IN_B@NAME_OF_MACHINE_B nc %h %p
User USER_IN_C
RemoteForward 52698 localhost:52698 # this is required by rsub
Host
定义了在HostName
指令之后写入的真实主机名的别名。 ProxyCommand
是您尝试登录myMachineC
时执行的命令。 nc
是一个命令......
...默认情况下,在侦听模式(服务器套接字)或用于连接服务器的套接字(客户端模式)中创建TCP套接字[1]
现在只需输入以下内容即可从C
访问计算机A
:
$ ssh myMachineC
建议您已经允许无密码登录。为此,您需要将家用计算机上的公钥安装到每台主机的〜/ .ssh / authorized_keys中。 [2]
总之:通过所有这些过程,将与中间计算机B
建立正常的SSH连接,然后nc
将用于将连接扩展到C
。使用此隧道,客户端可以像使用ssh直接连接一样。与rsub
一起使用时非常有用。
然后,您应该正常安装和使用rsub
,它将像魅力一样工作。
我在OSX Yosemite中试过这个,但几乎可以在任何* nix系统中运行。我希望它对你有用。
答案 1 :(得分:1)
接受的解决方案对我不起作用,因为我将Host B用作存储我的SSH密钥的SSH服务器。另外,我的SSH密钥具有密码,因此ProxyCommand命令无法使用。
但是有一种更简单的方法。
您可以将以下内容添加到主机B上的.ssh / config文件中;
Host *
RemoteForward 52698 localhost:52698
您可以定义特定主机或为所有主机提供*通配符。这将为来自主机B的所有SSH会话转发端口52698。