是否可以通过 VPS 使用 FTP 客户端(例如 Cyberduck)登录服务器,即进行双跳来访问服务器?
以下是我想做的事情:我的家用电脑是 Mac,我的普通 S/FTP 客户端是 Cyberduck。我通过 DigitalOcean 拥有一个 Ubuntu VPS。我想要连接的服务器只允许从我的 VPS 的 IP(IPv6)进行连接。因此,我想通过 VPS 使用 Cyberduck(或另一个基于 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 端口。
您可以在屏幕截图中看到它代表您在终端中运行的命令。
下一步是配置您的 FTP/SFTP 客户端。
将 Cyberduck 的主机设置为 127.0.0.1:222(如果您像我的屏幕截图示例一样在左栏中选择了 222)输入您的身份验证详细信息,然后点击连接。
理论上,一切顺利,您应该连接到第二台服务器。
答案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。