SFTP命令
一、介绍
SFTP(Secure File Transfer Protocol,安全文件传输协议)是一种基于可靠数据流(data stream),提供文件存取和管理的网络传输协议。
与 FTP 协议相比,SFTP 在客户端与服务器间提供了一种更为安全的文件传输方式,如果你还在使用 FTP 来进行文件传输,强烈建议切换到更为安全的 SFTP 上来。
windows下可以使用此命令于Linux进行文件交互。
二、使用SFTP进行连接
因为 SFTP 是基于 SSH 协议的,所以默认的身份认证方法与 SSH 协议保持一致。通常我们使用 SSH Key 来进行连接,如果你已经可以使用 SSH 连接到远程服务器上,那么可以使用以下命令来连接 SFTP:
1 |
|
如果远程服务器自定义了连接的端口,可以使用 -P
参数:
1 |
扫描二维码关注公众号,回复:
15050129 查看本文章
|
连接成功后将进入一个 SFTP 的解释器,可以发现命令行提示符变成了 sftp>
,使用 exit
命令可以退出连接。
如果连接地址存在 path
并且 path
不是一个目录,那么 SFTP 会直接从服务器端取回这个文件。
三、连接参数详解
-B
: buffer_size,制定传输 buffer 的大小,更大的 buffer 会消耗更多的内存,默认为 32768 bytes;-P
: port,制定连接的端口号;-R
: num_requests,制定一次连接的请求数,可以略微提升传输速度,但是会增加内存的使用量。
四、目录管理
在 SFTP 解释器中可以使用 help
命令来查看帮助文档。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
SFTP 解释器中预置了常用的命令,但是没有自带的 Bash 来得丰富。
1)显示当前的工作目录:
1 2 |
|
2)查看当前目录的内容:
1 2 |
|
3)使用 -la
参数可以以列表形式查看,并显示隐藏文件:
1 2 3 4 5 6 7 8 9 |
|
4)切换目录:
1 |
|
5)建立文件夹:
1 |
|
以上的命令都是用来操作远程服务器的,如果想要操作本地目录呢?只需要在每个命令前添加 l
即可,例如显示本地操作目录下的文件:
1 2 |
|
使用 !
可以直接(本地)运行 Shell 中的指令:
1 2 3 4 5 6 7 |
|
五、传输文件
5.1 从远程服务器拉取文件
使用 get
命令可以从远程服务器拉取文件到本地:
1 |
|
如果不指定 newName
,将使用和远程服务器相同的文件名。
使用 -r
参数可以拉取整个目录:
1 |
|
5.2 从本地上传文件到服务器
使用 put
命令可以从本地上传文件到服务器:
1 |
|
同样的,可以使用 -r
参数来上传整个目录,但是有一点要注意,如果服务器上不存在这个目录需要首先新建:
1 2 |
|
六、最佳实践
1)连接远程服务器
1 |
|
2)使用端口进行连接
1 |
|
3)从远程服务器拉取文件
1 |
|
4)上传本地文件到服务器
1 |
|
5)查看远程服务器目录内容
1 |
|
6)查看本地目录内容
1 |
|
7)执行本地 Shell 命令
1 |
|