FTP(File Transfer Protocol):文件传输协议,是用于在网络上进行文件传输的一套标准协议。
SFTP(SSH File Transfer Protocol):SSH文件传输协议(安全文件传送协议),为传输文件提供一种安全的网络的加密方法,SFTP是SSH的其中一部分。
在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
| 对比方面 | FTP | SFTP |
|---|---|---|
| 安全通道 | 不提供任何安全通道来在主机之间传输文件 | 提供了安全通道来在主机之间传输文件 |
| 使用协议 | 使用TCP/IP协议,明文传输用户信息和数据 | 是SSH协议的一部分,它是一种远程登录信息,基于SSH来加密传输文件,可靠性高,可断点续传。 |
| 链接方式 | 默认使用TCP端口21上的控制连接建立连接 | 通过SSH协议(TCP默认端口22)建立的安全连接来传输文件 |
| 安全性 | 数据以纯文本格式传输,安全性不高 | SSH加密传输,安全性较高 |
| 效率 | 传输不加密,效率高 | 加密传输,效率比FTP低 |
| 命令 | 描述 |
|---|---|
| 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命令相同,显示帮助文本 |
sftp [user@]host[:dir[/]]
示例:
sftp 127.0.0.1
sftp admin@127.0.0.1
sftp admin@127.0.0.1:aa/
quit
exit
bye
ls [path]
示例:
ls // 显示当前目录下的文件(文件夹)
ls /user // 显示user目录下的文件(文件夹)
cd [path]
示例:
cd // 进入当前目录(无意义)
cd /user // 进入user目录
pwd
mkdir [path]
示例:
mkdir user1
rmdir [path]
示例:
rmdir user1
put local [remote]
mput local [remote]
示例:
put E:\111.txt // 不指定远程目录直接上传到远程根目录
put E:\111.txt /user // 上传到远程指定目录
# 下载到本地
get remote [local]
mget remote [local]
示例:
get /user/111.txt // 不指定本地目录直接下载到本地当前目录
get /user/111.txt E:\aaa // 下载到本地指定目录
rm [remote]
示例:
rm /user/111.txt
rename old new
示例:
rename /user /user1
version
help
?
lcd path
示例:
lcd d:\user
lls [ls-options [path]]
示例:
lls // 显示本地当前目录下的文件(文件夹)
lls d:\user // 显示本地d:\user目录下的文件(文件夹)
lmkdir path
示例:
lmkdir aa // 本地当前目录下创建目录
lmkdir d:\user // 本地d:\user目录下创建目录
lpwd