出站SFTP转发代理

我有两台Web服务器,每台服务器都有一个公共IP,它们可以通过SFTP连接到各种SFTP服务器来更新内容。 我想为SFTP出站连接设置一个正向代理。 这样的代理是否存在?

您可以通过使用通用的SOCKS代理来代理SSH连接(并且因此还包括封装在SSH连接中的SFTP)。 我不知道SSH / SFTP的任何协议特定的代理。

(如果你提出了一个关于你的最终目标的暗示,那么回答会更容易一些。想要拥有这个代理的目的是什么?)

UPDATE

使用SSH通过代理隧道SSH:

  1. 在启动SFTP连接的客户端上安装tsocks

  2. 在你的/etc/tsocks.conf中设置如下:

    server = 127.0.0.1 server_type = 5 server_port = 1080 
  3. 打开一个到您的SFTP代理机器的后台SSH连接,如下所示:

     ssh -D 1080 -f -n -N ssh-proxy.example.com 

    …或者如果你想在5分钟后自动closures:

     ssh -D 1080 -f -n ssh-proxy.example.com 'sleep 300' 

    (如果从脚本执行此操作,则可能需要在客户机中添加-i keyfile ,并且如果要在没有用户的情况下从脚本打开连接,则在SFTP代理服务器的~/.ssh/authorized_keys中放入相应的条目注意。)

  4. 使用tsocks包装器通过代理运行SFTP操作:

     tsocks sftp destination-host.example.com 

    (这个SFTP连接将在destination-host.example.com中查找,就好像它是从ssh-proxy.example.com启动的一样。)

Dante的替代方法:

或者,您可以在代理机器上安装dante-server (SOCKS代理服务器软件),并configuration/etc/tsocks.conf以连接到127.0.0.1而不是127.0.0.1。 然后就像上面的步骤4一样,用tsocks包装器运行你的SFTP操作。 如果你这样做,你需要确保dante服务器被configuration,以便它不允许未经授权的用户连接。

希望这可以帮助!