SFTP 通过 SSH 传输。如果 SSH 需要代理助手才能到达文件服务器,就把这条路由放进主机条目,让 SFTP 使用它。

Host files-via-proxy
    HostName files.example.net
    User alex
    ProxyCommand nc -X connect -x proxy.example.net:8080 %h %p

配合兼容 OpenBSD 的 netcat 助手,sftp files-via-proxy 会使用这条连接路径。代理监听 8080;请求的目的地端口是文件服务器配置的 SSH 端口。两者是不同的值。对于允许公共中转的公共 SFTP 服务器,HTTP 代理列表为助手的 HTTP 代理端点提供候选。对未认证的候选不要使用代理凭据,并确认它允许文件服务器的实际主机和 SSH 端口。

SFTP 的 -P 用于选择目的地端口。不要把它与其他一些 SSH 工具使用的小写选项混淆,也不要在目的地后面随便加一个数字就以为会改变 SSH 连接。

代理认证、SSH 用户认证和访问远程文件的权限仍是彼此独立的检查。目的地还必须提供 SFTP 子系统。仅仅隧道可用并不等于获得文件会话,仅限转发的账户也未必能用于 SFTP。

保持主机密钥验证开启。代理提供的是路由,不应以自身身份取代文件服务器的身份。

相关文章