翼度科技»论坛 云主机 服务器技术 查看内容

Linux如何通过代理连接sftp

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
Linux通过代理连接sftp

背景:应用在内网,通过正向代理走vpn连接合作方sftp上传文件。
通过代理连接sftp命令:
  1. sftp -oProxyCommand='/usr/bin/nc --proxy-type http --proxy proxyIp:proxyPort %h %p' -oPort=sftpPort sftpuser@password
  2. [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无异常。
  1. 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
复制代码
  1. [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
  2. Ncat: Proxy returned status code 403.
  3. ssh_exchange_identification: Connection closed by remote host
  4. Couldn't read packet: Connection reset by peer
  5. [user@ABC-L0001 ~]$
复制代码
初步怀疑问题出在代理,查看squid.conf发现没放行sftp端口,添加规则“acl SSL_ports port 2266”,通过代理连接还是报同样的错,仔细查看代理规则,发现先“deny !Safe_ports”,再“deny CONNECT !SSL_ports”
  1. # Deny requests to certain unsafe ports
  2. http_access deny !Safe_ports

  3. # Deny CONNECT to other than secure SSL ports
  4. http_access deny CONNECT !SSL_ports
复制代码
再加一条规则“acl Safe_ports port 2266        # sftp”后,通过代理可正常连接合作方sftp。
  1. acl SSL_ports port 443
  2. acl SSL_ports port 2266
  3. acl Safe_ports port 80          # http
  4. acl Safe_ports port 21          # ftp
  5. acl Safe_ports port 2266        # sftp
复制代码
问题二:输入密码后报Connetction Closed
  1. [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
  2. cdkdsftp@10.10.20.103's password:
  3. Connection Closed
  4. [user@ABC-L0001 ~]$
复制代码
原因:密码过期

Linux sftp远程连接



SFTP(SSH File Transfer Protocol)安全文件传送协议。有着与FTP几乎一样的语法和功能。SFTP为SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。

SFTP与FTP主要区别

FTPSFTP链接方式使用TCP的21端口通过SSH协议(TCP端口22)安全性明文传输使用加密传输认证信息和传输的数据效率较高较低
SFTP常用命令

登录

  • 以root用户登录sftp
  1. sftp  xxx.xxx.xxx.xxx
复制代码

  • 以xxx用户登录sftp
  1. sftp xxx@xxx.xxx.xxx.xxx
复制代码

  • 使用-oPort选项来指定远程端口号
  1. sftp -oPort=60001 xxxx@xxx.xxx.xxx.xxx
复制代码

  • 查看当前目录下文件
  1. ls
复制代码

  • 进入指定目录
  1. cd [path]
复制代码

  • 查看当前目录
  1. pwd
复制代码

  • 下载文件到本地
  1. get [remote] [local]
复制代码

  • 上传文件
  1. put [local] [remote]
复制代码

  • 创建文件夹
  1. mkdir [remote]
复制代码

  • 删除文件
  1. rm [remote]
复制代码

  • 删除文件夹
  1. rmdir [remote]
复制代码

  • 退出sftp
  1. quit /  bye / exit
复制代码

  • 查看sftp版本
  1. version
复制代码

  • 查看支持命令
  1. help
复制代码

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/server/322209xil.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具