Linux通过代理连接sftp

背景:应用在内网,通过正向代理走vpn连接合作方sftp上传文件

通过代理连接sftp命令:sftp -oProxyCommand='/usr/bin/nc --proxy-type http --proxy proxyIp:proxyPort %h %p' -oPort=sftpPort sftpuser@password

[user@ABC-L0001 ~]$ sftp -oProxyCommand='/usr/bin/nc --proxy-type http --proxy 10.10.10.10:1080 %h %p' -oPort=2266 sftp@20.20.20.20

问题一:应用日志报错“proxy error: Forbidden”,应用服务器通过代理连接合作方sftp报403,代理服务器上直接连接合作方sftp无异常。

2021-09-13 14:37:09.157 [pool-1-thread-1] INFO  c.g.btp.domain.gn.service.SftpUploadAsynThread - postSftp_upload:ProxyHTTP: java.io.IOException: proxy error: Forbidden
[user@ABC-L0001 ~]$ sftp -oProxyCommand='/usr/bin/nc --proxy-type http --proxy 10.8.174.5:1080 %h %p' -oPort=2266 cdkdsftp@10.10.20.103
Ncat: Proxy returned status code 403.
ssh_exchange_identification: Connection closed by remote host
Couldn't read packet: Connection reset by peer
[user@ABC-L0001 ~]$

    初步怀疑问题出在代理,查看squid.conf发现没放行sftp端口,添加规则“acl SSL_ports port 2266”,通过代理连接还是报同样的错,仔细查看代理规则,发现先“deny !Safe_ports”,再“deny CONNECT !SSL_ports”

# Deny requests to certain unsafe ports
http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

     再加一条规则“acl Safe_ports port 2266        # sftp”后,通过代理可正常连接合作方sftp。

acl SSL_ports port 443
acl SSL_ports port 2266
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 2266        # sftp

问题二:输入密码后报Connetction Closed

[user@ABC-L0001 ~]$ sftp -oProxyCommand='/usr/bin/nc --proxy-type http --proxy 10.8.174.5:1080 %h %p' -oPort=2266 cdkdsftp@10.10.20.103
cdkdsftp@10.10.20.103's password:
Connection Closed
[user@ABC-L0001 ~]$

原因:密码过期

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值