• Java中SFTP的使用



    SFTP与FTP区别

    1.1 FTP

    FTP(File Transfer Protocol):文件传输协议,是用于在网络上进行文件传输的一套标准协议。

    1.2 SFTP

    SFTP(SSH File Transfer Protocol):SSH文件传输协议(安全文件传送协议),为传输文件提供一种安全的网络的加密方法,SFTP是SSH的其中一部分。

    在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。

    1.3 二者对比

    对比方面FTPSFTP
    安全通道不提供任何安全通道来在主机之间传输文件提供了安全通道来在主机之间传输文件
    使用协议使用TCP/IP协议,明文传输用户信息和数据是SSH协议的一部分,它是一种远程登录信息,基于SSH来加密传输文件,可靠性高,可断点续传。
    链接方式默认使用TCP端口21上的控制连接建立连接通过SSH协议(TCP默认端口22)建立的安全连接来传输文件
    安全性数据以纯文本格式传输,安全性不高SSH加密传输,安全性较高
    效率传输不加密,效率高加密传输,效率比FTP低

    SFTP常用命令

    命令描述
    bye退出 sftp
    exit退出 sftp
    cd path将远程目录更改为’path’
    chgrp grp path将文件’path’组更改为’grp’
    chmod mode path将文件’path’的权限更改为’mode’
    chown own path将文件’path’的所有者更改为’own’
    df [-hi] [path]显示包含’path’的当前目录或文件系统的统计信息
    get [-afPpRr] remote [local]下载文件
    reget [-fPpRr] remote [local]继续下载文件
    reput [-fPpRr] [local] remote继续上传文件
    lcd path将本地目录更改为’path’
    lls [ls-options [path]]显示本地目录列表
    lmkdir path创建本地目录
    ln [-s] oldpath newpath链接远程文件(-s 用于符号链接)
    lpwd打印本地工作目录
    ls [-1afhlnrSt] [path]显示远程目录列表
    lumask umask将本地 umask 设置为 ‘umask’
    mkdir path创建远程目录
    progress切换进度表的显示
    put [-afPpRr] local [remote]上传文件
    pwd显示远程工作目录
    quit退出 sftp
    rename oldpath newpath重命名远程文件
    rm path删除远程文件
    rmdir path删除远程目录
    symlink oldpath newpath符号链接远程文件
    version显示 SFTP 版本
    !command在本地 shell 中执行’command’
    !逃到本地 shell
    help显示帮助文本
    ?和help命令相同,显示帮助文本

    1.1 登录SFTP

    sftp [user@]host[:dir[/]]
    
    • 1
    示例:
    sftp 127.0.0.1
    
    sftp admin@127.0.0.1
    
    sftp admin@127.0.0.1:aa/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    1.2 退出SFTP

    quit
    
    exit
    
    bye
    
    • 1
    • 2
    • 3
    • 4
    • 5

    1.3 显示指定目录下的文件(文件夹)

    ls [path]
    
    • 1
    示例:
    ls						// 显示当前目录下的文件(文件夹)
    ls /user				// 显示user目录下的文件(文件夹)
    
    • 1
    • 2
    • 3

    1.4 进入指定目录

    cd [path]
    
    • 1
    示例:
    cd 						// 进入当前目录(无意义)
    cd /user				// 进入user目录
    
    • 1
    • 2
    • 3

    1.5 查看当前目录

    pwd
    
    • 1

    1.6 创建目录

    mkdir [path]
    
    • 1
    示例:
    mkdir user1
    
    • 1
    • 2

    1.7 删除目录

    rmdir [path]
    
    • 1
    示例:
    rmdir user1 
    
    • 1
    • 2

    1.8 上传文件

    put local [remote]
    
    mput local [remote]
    
    • 1
    • 2
    • 3
    示例:
    put E:\111.txt					// 不指定远程目录直接上传到远程根目录
    put E:\111.txt /user			// 上传到远程指定目录
    
    • 1
    • 2
    • 3

    1.9 下载文件

    # 下载到本地
    get remote [local]
    
    mget remote [local]
    
    • 1
    • 2
    • 3
    • 4
    示例:
    get /user/111.txt				// 不指定本地目录直接下载到本地当前目录
    get /user/111.txt E:\aaa	// 下载到本地指定目录
    
    • 1
    • 2
    • 3

    1.10 删除文件

    rm [remote]
    
    • 1
    示例:
    rm /user/111.txt
    
    • 1
    • 2

    1.11 重命名文件(文件夹)

    rename old new
    
    • 1
    示例:
    rename /user /user1
    
    • 1
    • 2

    1.12 SFTP版本

    version
    
    • 1

    1.13 SFTP帮助文档

    help
    
    ?
    
    • 1
    • 2
    • 3

    2.1 进入本地指定目录

    lcd path
    
    • 1
    示例:
    lcd d:\user
    
    • 1
    • 2

    2.2 显示本地指定目录下的文件(文件夹)

    lls [ls-options [path]]
    
    • 1
    示例:
    lls					// 显示本地当前目录下的文件(文件夹)
    lls d:\user			// 显示本地d:\user目录下的文件(文件夹)
    
    • 1
    • 2
    • 3

    2.3 创建本地目录

    lmkdir path
    
    • 1
    示例:
    lmkdir aa			// 本地当前目录下创建目录
    lmkdir d:\user		// 本地d:\user目录下创建目录
    
    • 1
    • 2
    • 3

    2.4 查看本地当前目录

    lpwd
    
    • 1
  • 相关阅读:
    uniapp开发H5及app监听返回事件(以及监听不到的处理方法)
    基于springboot+vue的加盟店管理系统(前后端分离)
    vue+elementUI 使用腾讯地图
    概率密度分布(distribution)的均值(期望)(mean)和中值中位数(median)
    部署大数据平台详细教程以及遇到的问题解答(ubuntu18.04下安装ambari2.7.3+HDP3.1.0)
    整理ArrayList和LinkedList中的方法
    django MEDIA_URL 和 MEDIA_ROOT 如何配置
    记录一次通过社工进网站后台
    Centos7下安装ruby2.7.8环境、WPScan的安装及使用介绍
    UI设计师岗位的基本职责八篇(合集)
  • 原文地址:https://blog.csdn.net/JokerLJG/article/details/126718439