通过 VPS 使用 FTP 客户端(双跳)

通过 VPS 使用 FTP 客户端(双跳)

是否可以通过 VPS 使用 FTP 客户端(例如 Cyber​​duck)登录服务器,即进行双跳来访问服务器?

以下是我想做的事情:我的家用电脑是 Mac,我的普通 S/FTP 客户端是 Cyber​​duck。我通过 DigitalOcean 拥有一个 Ubuntu VPS。我想要连接的服务器只允许从我的 VPS 的 IP(IPv6)进行连接。因此,我想通过 VPS 使用 Cyber​​duck(或另一个基于 GUI 的 Mac FTP 客户端)连接到服务器。我已设置公钥以无需密码即可连接到 VPS,并且需要使用密码从 VPS 连接到服务器。

我是否想要设置隧道?或者代理?或者其他什么?

答案在通过双服务器跳转的 SFTP仅提供命令行或 Windows 的答案。我正在寻找 Mac 上的 GUI 解决方案。

答案1

听起来您想使用 SSH 隧道连接到您的 VPS,然后从那里使用 cyberduck 通过该隧道连接到您的其他服务器。

编辑:我不知道这是否适用于 IPv6,但在该领域更有知识的人应该能够提供帮助。

因此,适用于 Mac 的 ssh 隧道的 GUI: http://projects.tynsoe.org/en/stm/ SSH 隧道管理器是一个很棒的小工具,可以帮助您省去使用命令行来设置隧道的麻烦。

以下是基础知识

主机:是您要通过 SSH 作为第一跳的服务器。在本例中是您的 VPS。端口:这将是标准 SSH 端口 (22)

本地重定向:它的作用是将本地主机端口(127.0.0.1:xxxxx)隧道传输到主机与另一台计算机和特定端口的连接。

左端口列:这是您的本地应用程序将连接到的本地主机端口,以通过隧道。

远程主机:这是您希望隧道在另一端连接的计算机的地址。即您的最终目的地。

右端口列:如果您可以直接连接,这就是您要连接到远程主机的端口。在您的情况下,又是标准 SSH 端口。 SSH 隧道管理器截图

您可以在屏幕截图中看到它代表您在终端中运行的命令。

关闭首选项窗口,然后连接隧道。
SSH 隧道

下一步是配置您的 FTP/SFTP 客户端。

将 Cyber​​duck 的主机设置为 127.0.0.1:222(如果您像我的屏幕截图示例一样在左栏中选择了 222)输入您的身份验证详细信息,然后点击连接。

理论上,一切顺利,您应该连接到第二台服务器。

答案2

根据我对您需求的了解,我看到了两种潜在的解决方案:

  1. 使用袜子ssh 的服务器模式(“-D”选项),并设置 Cyber​​duck 使用此 SOCKS 服务器打开你的 ftp 连接(服务器 = localhost,端口 = ssh 的 -D 选项上指定的本地端口)

  2. 看看并尝试一下”穿梭巴士“,这是我最近听说过的一个开源程序(但从未测试过)

祝你好运!如果对你有用,请告诉我们。

答案3

正如 @Jakuje 在评论中所说,只需输入类似这样的内容:

Match group users
    ChrootDirectory %h
    X11Forwarding no
    AllowTCPForwarding no
    ForceCommand internal-sftp

在您的 Ubuntu VPS 文件末尾/etc/ssh/sshd_config,这将允许users组中的所有用户访问sftp他们的主目录。然后使用您的 mac 客户端(例如 cyberduck)以正确的配置连接到该用户。然后您就完成了 ;)

您也可以更改group users为任何您想要的组,或者仅用于Match user USERNAME为一个用户启用此功能。

答案4

最后我使用了这里的说明:http://backdrift.org/transparent-proxy-with-ssh

然后我使用了 TextWrangler 的“从 SFTP 服务器打开”功能,成功了。看来我正在使用的特定连接以某种方式阻止了 cyberduck,但它允许 TextWrangler。

相关内容