use*_*952 3 port sftp bidirectional
我有以下脚本通过接受以下参数从给定的远程目录获取给定文件
FSERVER=$1
FUSER=$2
SRC_DIR=$3
REMOTE_SRC_DIR=$4
FILE_NAME=$5
cd $SRC_DIR
sftp $FUSER@$FSERVER <<GOTO
cd $REMOTE_SRC_DIR
ascii
get $FILE_NAME
bye
Run Code Online (Sandbox Code Playgroud)
要访问从文件$REMOTE_SRC_DIR到SRC_DIR我需要的端口从两侧打开?即双向或从远程服务器到源的一个端口,它应该需要来自源的"初始化"会话.那是什么原因?
根据我的理解,我们连接到远程服务器路径,然后编写查询获取文件名.所以我们需要双向访问.
SFTP使用单个TCP连接.通常,TCP连接是有状态的.因此,一旦打开双方都可以相互发送数据.只有连接的被动端需要最初打开一个众所周知的端口号(在这种情况下,SSH/SFTP为22).活动侧打开一个随机端口号,被动端从打包的TCP连接启动中学习.此被动端口通过TCP连接关闭.而活动端口保持打开以供将来的TCP连接使用.
SFTP协议严格使用请求 - 响应模型.即尽管TCP允许双方随时使用SFTP发送数据,但服务器不会自己发送数据,而是始终响应客户端请求.请注意,这并不意味着,在网络级别上没有未经请求的数据从服务器流向客户端,因为在SFTP的两个底层协议(TCP和SSH)中,连接的两端都可以随时发送(和发送)数据包.
简化的流程是:
cd在客户端模拟使用该命令更改远程工作目录.SFTP服务器无法识别所有客户端远程工作目录.SFTP客户端通常仅验证SFTP服务器是否存在新的工作目录.ascii命令:OpenSSH的sftp客户端没有ascii命令.你应该得到"无效的命令".除非您使用其他客户端而不是OpenSSH.get命令:对于文件传输SFTP协议提供了类似的块级API作为大多数操作系统(违背FTP协议流API).因此,SFTP客户端通过现有连接发送"打开文件"请求,然后是重复的"读取块"请求和"关闭文件"请求.与任何SFTP请求一样,响应通过相同的TCP连接返回.| 归档时间: |
|
| 查看次数: |
8545 次 |
| 最近记录: |