不确定如何准确表述。我有一个学校网络服务器,我必须访问ssh
一台服务器,然后从那里ssh
访问另一台服务器。我是否可以设置一些东西来绕过第一台服务器,这样我就可以直接访问第二台服务器?
也许我应该提到我是在家里的 Windows 机器上工作的。我提到过ssh
ing,但就像标题所说的那样,我想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。
- 确保你已经在某处下载了 Putty。只需有 putty.exe 就足够了(命令行界面)。例如在你的桌面上
- 安装 SFTP 客户端(例如 Filezilla 或 WinSCP)
- 从命令行运行此代码(第一个路径显然是执行命令的目录):
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
- 打开您的 SFTP 客户端并使用您的常规凭据,但不要使用服务器地址,而是使用端口为 3111 的 localhost。
- 你完成了。别忘了在完成之前保持隧道畅通!
答案3
〜/.ssh /配置:
Host internalmachine.mynet.com
ProxyCommand ssh gateway.mynet.com exec nc %h %p
答案4
刚刚发现你可以使用 PuTTY 设置隧道,然后使用你想要的任何 FTP 程序连接到它。效果很好 :)
(对于那些也需要该解决方案的人:请参阅有两个 SSH 账户,如何传输文件?)
扩展驱动器运行效果也非常好,使用起来非常简单。