如何使用 SFTP 与远程服务器进行交互
FTP,即文件传输协议,是一种流行的、未加密的在两个远程系统之间传输文件的方法。 截至 2022 年,由于缺乏安全性,它已被大多数现代软件弃用,并且大多只能用于历史遗留下来应用程序。
SFTP 是安全文件传输协议,是一种内置在 SSH 中的单独协议,可以通过安全连接实现 FTP 命令。 通常,它可以在仍然需要 FTP 服务器的任何环境中直接使用。
在几乎所有情况下,SFTP 都比 FTP 更可靠,因为它具有底层的安全特性和搭载 SSH 连接的能力。 FTP 是一种不安全的协议,只能在有限的情况下或在您信任的网络上使用。
尽管 SFTP 已集成到许多图形工具中,但我们将通过其交互式命令行界面演示如何使用它。
如何连接 SFTP
默认情况下,SFTP 使用 SSH 协议进行身份验证并建立安全连接。 因此,可以使用与 SSH 相同的身份验证方法。
尽管我们可以默认使用密码进行身份验证,但我们建议您创建 SSH 密钥并将您的公钥传输到需要访问的任何系统。 这更加安全,从长远来看可以节省时间。关于 SSH密钥的设置,可以参考我们的 如何创建Git SSH 密钥
尽管我们可以默认使用密码进行身份验证,但我们建议您创建 SSH 密钥并将您的公钥传输到需要访问的任何系统。 这更加安全,从长远来看可以节省时间。
如果您可以使用 SSH 连接到计算机,那么就已经完成了使用 SFTP 管理文件所需的所有必要要求。 使用以下命令测试 SSH 访问:
$ ssh username@your_server_ip_or_remote_hostname
如果能连接上,可以输入以下命令退出:
$ exit
现在我们可以通过使用以下命令来建立 SFTP 会话:
$ sftp username@your_server_ip_or_remote_hostname
这样我们将可以连接远程系统,终端的提示符将更改为 SFTP 提示。
sftp>
如果正在使用自定义 SSH 端口(不是默认端口 22),则可以按如下方式打开 SFTP 会话:
$ sftp -oPort=custom_port username@your_server_ip_or_remote_hostname
这将通过我们指定的端口将连接到远程系统。
在 SFTP 中获得帮助
首先要学习的最有用的命令是 help 命令。 我们可以使用这个命令查看其他 SFTP 命令的使用方式。
sftp> help
或者
sftp> ?
这将显示可用命令的列表:
Available commands:
bye Quit sftp
cd path Change remote directory to 'path'
chgrp grp path Change group of file 'path' to 'grp'
chmod mode path Change permissions of file 'path' to 'mode'
chown own path Change owner of file 'path' to 'own'
df [-hi] [path] Display statistics for current directory or
filesystem containing 'path'
exit Quit sftp
get [-Ppr] remote [local] Download file
help Display this help text
lcd path Change local directory to 'path'
. . .
我们将分三部分来介绍一些命令。
使用 SFTP 浏览文件系统
我们可以使用许多功能类似于它们的 shell 的命令来浏览远程系统的文件层次结构。
首先,让我们通过找出我们当前在远程系统上的哪个目录来定位自己。 就像在典型的 shell 会话中一样,我们可以使用以下命令来获取当前目录:
sftp> pwd
输出如下所示
Remote working directory: /home/demouser
我们可以用另一个熟悉的命令查看远程系统当前目录的内容:
sftp> ls
输出如下所示
Summary.txt info.html temp.txt testDirectory
请注意,SFTP 界面中可用的命令并不是完全能使用 shell 语法中的命令,并且功能不丰富。 但是,它们确实实现了一些更重要的可选项,例如将 -la 添加到 ls 后面可以查看更多文件元数据和权限:
sftp> ls -la
输出结果如下所示
drwxr-xr-x 5 demouser demouser 4096 Aug 13 15:11 .
drwxr-xr-x 3 root root 4096 Aug 13 15:02 ..
-rw------- 1 demouser demouser 5 Aug 13 15:04 .bash_history
-rw-r--r-- 1 demouser demouser 220 Aug 13 15:02 .bash_logout
-rw-r--r-- 1 demouser demouser 3486 Aug 13 15:02 .bashrc
drwx------ 2 demouser demouser 4096 Aug 13 15:04 .cache
-rw-r--r-- 1 demouser demouser 675 Aug 13 15:02 .profile
要进入另一个目录,我们可以使用以下命令:
sftp> cd testDirectory
我们现在可以遍历远程文件系统,但是如果我们需要访问本地文件系统怎么办? 我们可以通过在命令前面加上一个表示本地的 l
来将命令指向本地文件系统。
到目前为止讨论的所有命令都有本地对等的命令。 我们可以打印本地工作目录:
sftp> lpwd
输出如下所示
Local working directory: /Users/demouser
我们可以列出本地机器上当前目录的内容:
sftp> lls
输出如下
Desktop local.txt test.html
Documents analysis.rtf zebra.html
我们还可以在本地系统上更改要与之交互的目录:
sftp> lcd Desktop
在下一篇文章中我们介绍SFTP如何与远程服务器传输文件
本文转载自:迹忆客(https://www.jiyik.com)
以上是 如何使用 SFTP 与远程服务器进行交互 的全部内容, 来源链接: utcz.com/z/290266.html