通过反向 SSH 隧道进行 SFTP?

通过反向 SSH 隧道进行 SFTP?

我想要通过 SFTP 传输到位于 NAT 后面的远程计算机。我无法修改 NAT 路由器,因此我使用中间人服务器设置了反向 SSH 隧道。

我的 SSH 隧道如下所示:

laptop--->nat--->middleman<--nat<--desktop

完整的详细信息在这里: 通过 SSH 反向隧道的远程桌面替代 TeamViewer

我目前正在通过该隧道使用 SSH 和 VNC。

如何通过隧道使用 SFTP?

我假设该命令看起来像

sftp://localhost:port

SSH 登录是通过仅密钥对(无密码)所以我们需要在解决方案中考虑这一点。我使用 KDE,所以我需要让它与 Dolphin 文件管理器一起工作。我听说在 Dolphin 中设置 SFTP 身份验证可能很痛苦......

我将在笔记本电脑上运行 Dolphin,并像这样连接到桌面上的文件系统。

laptop(SFTP client)--->nat--->middleman<--nat<--desktop(SFTP server)

PS 我也会考虑 sshfs,如果那样更容易的话。我认为不会,因为我没有服务器的域名或 IP 地址。

答案1

首先,这是一个先决条件(至少对我来说): 通过 SSH 反向隧道的远程桌面替代 TeamViewer

反向 SSH 隧道如下所示:

laptop(SFTP client)--->nat--->middleman<--nat<--desktop(SFTP server)

编辑laptop~/.ssh/config 并添加以下内容:

Host SftpToDesktop
  HostName localhost
  Port %p
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

然后,在已经建立从笔记本电脑到中间人的现有 SSH 线路的情况下(按照上面的链接),执行以下操作:

$ ssh -fNL 1234:localhost:1234 -i ~/.ssh/some_id_rsa [email protected]

最后,打开 Dolphin(如果像我一样使用 KDE)并输入以下位置:

sftp://SftpToDesktop:1234

相关内容