我有两台Web服务器,每台服务器都有一个公共IP,它们可以通过SFTP连接到各种SFTP服务器来更新内容。 我想为SFTP出站连接设置一个正向代理。 这样的代理是否存在?
您可以通过使用通用的SOCKS代理来代理SSH连接(并且因此还包括封装在SSH连接中的SFTP)。 我不知道SSH / SFTP的任何协议特定的代理。
(如果你提出了一个关于你的最终目标的暗示,那么回答会更容易一些。想要拥有这个代理的目的是什么?)
UPDATE
在启动SFTP连接的客户端上安装tsocks 。
在你的/etc/tsocks.conf中设置如下:
server = 127.0.0.1 server_type = 5 server_port = 1080
打开一个到您的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中放入相应的条目注意。)
使用tsocks包装器通过代理运行SFTP操作:
tsocks sftp destination-host.example.com
(这个SFTP连接将在destination-host.example.com中查找,就好像它是从ssh-proxy.example.com启动的一样。)
或者,您可以在代理机器上安装dante-server (SOCKS代理服务器软件),并configuration/etc/tsocks.conf以连接到127.0.0.1而不是127.0.0.1。 然后就像上面的步骤4一样,用tsocks包装器运行你的SFTP操作。 如果你这样做,你需要确保dante服务器被configuration,以便它不允许未经授权的用户连接。
希望这可以帮助!