如何通过 (S)FTP 连接至隐藏服务器?

如何通过 (S)FTP 连接至隐藏服务器?

不确定如何准确表述。我有一个学校网络服务器,我必须访问ssh一台服务器,然后从那里ssh访问另一台服务器。我是否可以设置一些东西来绕过第一台服务器,这样我就可以直接访问第二台服务器?


也许我应该提到我是在家里的 Windows 机器上工作的。我提到过sshing,但就像标题所说的那样,我想FTP使用 FileZilla 之类的东西来访问我的文件,而不是某些命令行界面 (PuTTy)。

答案1

您可能想查看 OpenSSH 的ProxyCommand,它允许您指定任意命令来建立隧道。在这种情况下,您将使用 ssh 连接到第一台服务器,运行类似netcat连接到第二台服务器的命令。如果您使用公钥身份验证连接到第一台服务器,这将特别方便,否则,您需要输入两个密码。

相关.ssh/config代码片段如下:

Host hidden-server
HostKeyAlias hidden-server
ProxyCommand ssh first-server nc -w1 hidden-server 22

答案2

在 @mpen 将我链接到 WinSCP 后,我只需按照那里的指示,就可以让它与 Filezilla 一起工作。过程与描述的相同这里

这些说明仅适用于 Windows。

  1. 确保你已经在某处下载了 Putty。只需有 putty.exe 就足够了(命令行界面)。例如在你的桌面上
  2. 安装 SFTP 客户端(例如 Filezilla 或 WinSCP)
  3. 从命令行运行此代码(第一个路径显然是执行命令的目录):

C:\Users\<username>\Desktop> .\putty.exe <tunnel.server> -L 3111:<server-destination>:22

例子:

C:\Users\Bram\Desktop> .\putty.exe my.domain.com -L 3111:sub.domain.com:22
  1. 打开您的 SFTP 客户端并使用您的常规凭据,但不要使用服务器地址,而是使用端口为 3111 的 localhost。
  2. 你完成了。别忘了在完成之前保持隧道畅通!

答案3

〜/.ssh /配置:

Host internalmachine.mynet.com
    ProxyCommand ssh gateway.mynet.com exec nc %h %p

答案4

刚刚发现你可以使用 PuTTY 设置隧道,然后使用你想要的任何 FTP 程序连接到它。效果很好 :)

(对于那些也需要该解决方案的人:请参阅有两个 SSH 账户,如何传输文件?

扩展驱动器运行效果也非常好,使用起来非常简单。

相关内容