每天一个linux命令(57): sftp

sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似。 然而,sFTP 比 FTP 更安全;它通过加密 SSH 传输处理所有操作。

它可以配置使用几个有用的 SSH 功能,如公钥认证和压缩。 它连接并登录到指定的远程机器,然后切换到交互式命令模式,在该模式下用户可以执行各种命令。

在本文中,我们将向你展示如何使用 sFTP 上传/下载整个目录(包括其子目录和子文件)。

How to use#

默认情况下,SFTP 协议采用和 SSH 传输协议一样的方式建立到远程服务器的安全连接。虽然,用户验证使用类似于 SSH 默认设置的密码方式,但是,建议创建和使用 SSH 无密码登录,以简化和更安全地连接到远程主机。

要连接到远程 sftp 服务器,如下建立一个安全 SSH 连接并创建 SFTP 会话:

$ sftp root@server

登录到远程主机后,你可以如下运行交互式的 sFTP 命令:

sftp> ls            #列出服务器文件列表
sftp> lls           #列出本地文件列表
sftp> pwd           #当前服务器上路径
sftp> lpwd          #当前本地路径
sftp> cd img        #切换服务器路径
sftp> lcd img       #切换本地路径
sftp> mkdir img     #在服务器上创建一个目录
sftp> lmkdir img    #在本地创建一个目录

上传文件#

sftp> put readme.md #上传单个文件
sftp> mput *.xls    #上传多个文件

下载文件#

sftp> get readme.md #下载单个文件
sftp> mget *.xls    #下载多个文件

上传文件夹#

使用put -r .但是远程服务器要提前创建一个相同名称的目录; -r 递归复制子目录和子文件

sftp> mkdir img
sftp> put -r img

要保留修改时间、访问时间以及被传输的文件的模式,可使用 -p

sftp> put -pr img

下载文件夹#

sftp> get -r img

退出#

sftp> bye
sftp> exit
ctrl + d