当前位置: 代码网 > 服务器>服务器>Linux > Linux如何通过代理连接sftp

Linux如何通过代理连接sftp

2024年06月17日 Linux 我要评论
linux通过代理连接sftp背景:应用在内网,通过正向代理走vpn连接合作方sftp上传文件。通过代理连接sftp命令:sftp -oproxycommand='/usr/bin/nc --prox

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 ~]$

原因:密码过期

linux sftp远程连接

sftp(ssh file transfer protocol)安全文件传送协议。有着与ftp几乎一样的语法和功能。sftp为ssh的其中一部分,是一种传输档案至 blogger 伺服器的安全方式。

sftp与ftp主要区别

ftpsftp
链接方式使用tcp的21端口通过ssh协议(tcp端口22)
安全性明文传输使用加密传输认证信息和传输的数据
效率较高较低

sftp常用命令

登录

  • 以root用户登录sftp
 sftp  xxx.xxx.xxx.xxx
  • 以xxx用户登录sftp
sftp xxx@xxx.xxx.xxx.xxx 
  • 使用-oport选项来指定远程端口号
sftp -oport=60001 xxxx@xxx.xxx.xxx.xxx
  • 查看当前目录下文件

ls

  • 进入指定目录
cd [path]
  • 查看当前目录

pwd

  • 下载文件到本地
get [remote] [local]
  • 上传文件
put [local] [remote]
  • 创建文件夹
mkdir [remote]
  • 删除文件
rm [remote]
  • 删除文件夹
rmdir [remote]
  • 退出sftp
quit /  bye / exit
  • 查看sftp版本

version

  • 查看支持命令

help

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

  • Linux网桥配置br-lan、eth0、eth1、ra0、rai0方式

    Linux网桥配置br-lan、eth0、eth1、ra0、rai0方式

    linux网关模式下将有线lan和无线lan共享网段实现局域网内互联思路其实很简单:就是将虚拟出一个bridge口,将对应的有线lan和无线lan都绑定在这个虚... [阅读全文]
  • Linux之路由转发和SNAT的应用方式

    1.snat的介绍snat又称源地址转换。源地址转换是内网地址向外访问时,发起访问的内网ip地址转换为指定的ip地址(可指定具体的服务以及相应的端口或端口范围),这可以使内网中使用…

    2024年06月17日 服务器
  • Linux如何开启路由转发功能

    Linux如何开启路由转发功能

    linux开启路由转发功能一、准备需求:两台不同网段的主机通信方案:另外启动一台服务器b,双网卡,一个网卡和服务器a通信,一个网卡和服务器c通信。a和c通信通过... [阅读全文]
  • 详解如何在Linux上添加路由

    详解如何在Linux上添加路由

    在添加路由之前,我们需要先了解一些基本概念。基本概念什么是路由?路由是指确定数据包从源节点到目的节点的路径的过程。这个过程涉及到在网络中的多个节点之间选择最佳路... [阅读全文]
  • linux停止jar包进程方式

    linux停止jar包进程提供两种方式关闭进程:知道端口号;知道jar包名称1.知道端口号,停止进程(1)根据端口号获取进程编号pidnetstat -lnp|grep 端口号比如…

    2024年06月17日 服务器
  • Linux如何运行Jar包命令

    一、后台运行jarnohup java -jar /home/spring_one_demo-0.0.1-snapshot.jar > spring.log 2>&am…

    2024年06月17日 服务器

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com