如何在Linux中使用SFTP命令在远程服务器上传输文件

时间:2020-03-05 15:27:37  来源:igfitidea点击:

SFTP是一种协议,提供安全和私有频道,用于使用加密在系统之间传输文件。
关于缩写的SFTP存在误解,有些人认为它代表安全文件传输协议。
它代表SSH文件传输协议。
在"FTPS"不同的位置,FTPS客户端将首先检查FTPS服务器的证书是否可信并使用安全套接字层协议(TLS)。
很高兴阅读如何在Ubuntu 18.04上使用SSL/TLS配置VSFTPD SFTP

可以易于认为SFTP和FTP在功能方面类似,但是,这两个采用了各种协议。
因此,我们不能使用标准FTP客户端连接到SFTP服务器。
在本教程中,我们将专注于常用的SFTP命令。

SFTP的标准应用是在自己环境中的命令界面上运行。
这就是为什么在大多数情况下,我们将注意到程序界面更改为提示SFTP>。
我们调用了SFTP会话的那一刻,除非使用SFTP命令行标准中的特定语言调用它们,否则通常的系统命令不会执行。

并非所有计算机都可以处理SFTP命令。
我们可以选择使用SFTP或者命令行的图形界面版本,具体取决于我们使用的操作系统。
GUI接口要求我们安装SFTP实用程序。

在本文中,我们将带我们通过Unix/Linux命令行使用的一些SFTP命令示例。

如何与SFTP连接

用于建立通信的SSH协议与SFTP通道所需的SSH协议相同。
大多数人更喜欢将保存的密码设置为默认值,但我建议使用我们可以在需要访问任何系统时使用的SSH键。

要启动SFTP会话,我们需要一个用户名和远程主机名。

或者,我们可以在下面的提示下使用主机名的IP地址:

~ # sftp [email protected]
[email protected]'s password: 
Connected to [email protected].

在上面的示例中,如果存在允许处理上面的命令的连接,则在获得访问之前,我们将期望密码提示。

1)如何在提示处获得帮助

如果我们在SFTP命令行上使用的类型或者格式没有CLUE,请使用"?
"或者在提示中的"帮助"如下

sftp ?

2)确认工作目录

使用命令LPWD将提供有关工作目录的更多信息。
PWD用于检查遥控程序。

sftp> lpwd

输出

Local working directory: /root
sftp> pwd

输出

Remote working directory: /upload

3)列表文件

在SFTP命令提示符下,我们使用不同的命令列出了遥控器和本地文件。

远程上市

sftp> ls

本地上市

sftp> lls

4)上传文件

可以通过在远程主机上放置单个或者多个文件来进行上传。

远程主机上的单个文件,

sftp> put Hello-World.txt

输出

Uploading Hello-World.txt to /upload/Hello-World.txt
Hello-World.txt

远程主机上的多个文件

sftp> mput *.txt

输出

Uploading Hello-World.txt to /upload/Hello-World.txt
Hello-World.txt 100% 0 0.0KB/s 00:00 
Uploading file1.txt to /upload/file1.txt
file1.txt 100% 0 0.0KB/s 00:00 
Uploading file2.txt to /upload/file2.txt
file2.txt 100% 0 0.0KB/s 00:00 
Uploading file3.txt to /upload/file3.txt
file3.txt 100% 0 0.0KB/s 00:00 
Uploading file4.txt to /upload/file4.txt
file4.txt 100% 0 0.0KB/s 00:00

5)下载文件

我们将能够在本地路径或者系统中下载单个或者多个文件。

sftp> get file1.pdf

输出

Fetching /upload/file1.pdf to file1.pdf

在本地路径或者系统上下载多个文件

sftp> mget * .pdf

输出

Fetching /upload/file1.pdf to file1.pdf
Fetching /upload/file2.pdf to file2.pdf
Fetching /upload/file3.pdf to file3.pdf
Fetching /upload/file4.pdf to file4.pdf
Fetching /upload/file5.pdf to file5.pdf

很明显,在本地系统中下载文件时,使用相同的名称完成。
当我们想在远程文件下载上使用不同的名称时,应在命令的末尾指定名称。

6)切换目录

在远程服务器上,我们使用该命令,

sftp> cd test

在本地计算机上,我们使用该命令,

sftp> lcd Documents

7)创建目录

可以在远程和本地路径上创建目录

本地路径上的一个新目录

sftp> mkdir test

远程主机上的新目录

sftp> lmkdir Documents

8)删除目录

删除远程主机中的目录或者文件

删除远程主机中的文件

sftp> rm Report.xls

删除远程主机中的目录

sftp> rmdir Department

注意:如果目标目录为空,则此命令只能工作

9)退出命令shell

感叹号! (在这种情况下称为命令)用于超出SFTP命令提示符,如以下示例所示。

sftp>!
[root@sftp ~]# exit
Shell exited with status 1
sftp>