用于 sftp 或 GUI 的 ssh 隧道
Posted
技术标签:
【中文标题】用于 sftp 或 GUI 的 ssh 隧道【英文标题】:ssh tunneling for sftp or GUI 【发布时间】:2011-06-30 23:21:39 【问题描述】:我正在尝试通过 ssh 隧道使用 sftp
我有一个homePC
,它可以使用gatewayPC
作为跳转主机来登录远程服务器
我使用 ssh 隧道命令
$ssh -t userid@gateway ssh remoteserver
来自homePC
,效果很好
但是,一旦我登录到另一台机器,我想打开一个 nautilus 或任何其他文件管理器
一种选择是能够通过此隧道进行 sftp 或 ftp
是否有基于 GUI 的工具(如用于 windows 的 putty)来实现这一点?
感谢任何帮助
问候, 希瓦尼
【问题讨论】:
您可以使用 FileZilla 来执行此操作,请查看:superuser.com/a/1286681/141314 【参考方案1】:为此,您可以使用 ssh 隧道,您必须在路径中创建一个文件:
atiruz@pc:~$ nano ~/.ssh/config
并添加此文本(根据您的服务器调整):
Host gatewayPC
HostName 100.110.120.130
Host localPC
ProxyCommand ssh -A -t root@gatewayPC -p 222 nc 192.168.1.5 22
Host otherPC
ProxyCommand ssh -A -t localPC nc 10.10.0.55 22
通过这个例子,你可以直接从网关PC到本地PC,只需在终端中运行:
atiruz@pc:~$ ssh root@localPC
该方案应如this site 中所述。 (我做了一个小改动,因为在这个网站的例子中,我的 Ubuntu 12.04 上不工作)。
你也可以在Nautilus
中使用,使用路径如下:
在终端中:atiruz@pc:~$ nautilus sftp://root@localPC
或者直接在Nautilus
:sftp://root@localPC
【讨论】:
【参考方案2】:我不确定执行此类操作的“正确”方法是什么,但我曾经做过类似的事情,方法是创建从 homePC 到 gatewayPC,然后从 gatewayPC 到 remoteserver 的端口转发。然后我可以将我的本地 SFTP 客户端连接到端口转发管道的本地端。不过,这会让你的加密加倍。
【讨论】:
【参考方案3】:我建议使用“ssh -fND 6789 gatewayPC”,然后使用配置 tsocks,这样您就可以执行“tsocks sshfs remoteserver: /mnt/remoteserver”。第一个命令设置一个 SOCK5 代理,将所有 TCP 请求通过隧道传送到gatewayPC。tsocks 命令包装了使用 SOCKS5 代理的命令的网络调用。sshfs 让您使用 sftp 挂载远程文件系统。
【讨论】:
【参考方案4】:你的问题不清楚,所以这里有两个答案:
如果您只想能够在远程主机上运行基于 X 的文件管理器应用程序,只需确保 -X
在每个 ssh
中都有效:
homepc% ssh -X me@gatewaypc
...Authenticate...
gatewaypc% ssh -X me@otherpc
...Authenticate...
otherpc% some-x-application
...X application displays on homepc...
如果您希望使用scp
直接复制文件,
homepc% ssh -L2222:otherpc:22 me@gatewaypc
...Authenticate...
gatewaypc% (Don't do anything here)
然后你可以在转发端口上做scp
homepc% scp -P 2222 me@localhost:~/path/to/file /where/it/goes
【讨论】:
我认为他想在本地计算机上使用文件管理器,但能够在两台计算机之间复制文件。如果它在远程计算机上运行,则无法在两者之间进行复制。以上是关于用于 sftp 或 GUI 的 ssh 隧道的主要内容,如果未能解决你的问题,请参考以下文章