如何使用SFTP命令传输文件

2023-10-17

SFTP(SSH 文件传输协议)是一种安全文件协议,用于通过加密的 SSH 传输访问、管理和传输文件。

与传统的相比FTPSFTP 提供 FTP 的所有功能,但更安全且更易于配置。

Unlike SCPSFTP 仅支持文件传输,但允许您对远程文件执行一系列操作并恢复文件传输。

在本教程中,我们将向您展示如何使用 Linuxsftp命令。

在你开始之前#

为了能够通过 SFTP 传输文件,您必须拥有远程系统的写入权限。

传输大文件时,建议运行sftp里面的命令screen or tmux会议。

运行该程序的目录sftp命令是本地工作目录。

不要将 SFTP 与 FTPS 混淆。两种协议都有相同的目的。然而,FTPS 代表 FTP Secure,它是标准 FTP 协议的扩展,支持 TLS。

建立 SFTP 连接#

SFTP 在客户端-服务器模型上工作。它是SSH的一个子系统,支持所有SSH认证机制。

要打开到远程系统的 SFTP 连接,请使用sftp命令后跟远程服务器用户名和 IP 地址或域名:

sftp remote_username@server_ip_or_hostname

如果您使用密码身份验证连接到主机,系统将提示您输入用户密码。

连接后,您将看到sftp提示后,您就可以开始与远程服务器交互:

Connected to remote_username@server_ip_or_hostname.
sftp>

如果远程 SSH 服务器没有监听默认端口22, 使用-P指定 SFTP 端口的选项:

sftp -P custom_port remote_username@server_ip_or_hostname

SFTP命令#

大多数 SFTP 命令与 Linux shell 命令相似或相同。

要获取所有可用 SFTP 命令的列表,请键入help, or ?.

help

这将输出所有可用命令的长列表,包括每个命令的简短描述:

Available commands:
bye                                Quit sftp
cd path                            Change remote directory to 'path'
...
...
version                            Show SFTP version
!command                           Execute 'command' in local shell
!                                  Escape to local shell
?                                  Synonym for help

当您登录到远程服务器时,您的当前工作目录是远程用户主目录。您可以通过输入以下内容来检查:

pwd
Remote working directory: /home/remote_username

要列出文件和目录,请使用ls命令:

ls

要导航到另一个目录,请使用cd命令。例如,要切换到/tmp您将键入的目录:

cd /tmp

上述命令用于在远程位置进行导航和工作。

SFTP shell 还提供用于本地导航、信息和文件管理的命令。本地命令以字母为前缀l.

例如,要打印本地工作目录,您可以键入:

cd lpwd
Local working directory: /home/local_username

使用 SFTP 传输文件#

SFTP 允许您在两台计算机之间安全地传输文件。

如果您在台式计算机上工作,则可以使用 GUI SFTP 客户端,例如WinSCP or 文件齐拉连接到远程服务器并下载或上传文件。

The sftp当您在没有 GUI 的服务器上工作并且想要传输文件或对远程文件执行其他操作时,该命令非常有用。

使用SFTP命令下载文件#

要从远程服务器下载单个文件,请使用get命令:

get filename.zip

输出应如下所示:

Fetching /home/remote_username/filename.zip to filename.zip
/home/remote_username/filename.zip                           100%   24MB   1.8MB/s   00:13

下载文件时使用sftp,文件将下载到您键入的目录中sftp命令。

如果您想使用不同的名称保存下载的文件,请将新名称指定为第二个参数:

get filename.zip local_filename.zip

要从远程系统下载目录,请使用递归-r option:

get -r remote_directory

如果文件传输失败或中断,您可以使用reget命令。

语法为reget与语法相同get:

reget filename.zip

使用SFTP命令上传文件#

要将文件从本地计算机上传到远程 SFTP 服务器,请使用put命令:

put filename.zip

输出应如下所示:

Uploading filename.zip to /home/remote_username/filename.zip
filename.zip                          100%   12MB   1.7MB/s   00:06

如果要上传的文件不在当前工作目录中,请使用该文件的绝对路径。

当与put您可以使用与get命令。

要上传本地目录,您可以输入:

put -r locale_directory

要恢复中断的上传:

reput filename.zip

使用 SFTP 进行文件操作#

通常,要在远程服务器上执行任务,您可以通过 SSH 连接到它并使用 shell 终端完成工作。但是,在某些情况下,用户可能只能通过 SFTP 访问远程服务器。

SFTP 允许您执行一些基本的文件操作命令。以下是如何使用 SFTP shell 的一些示例:

  • 获取有关远程系统的信息磁盘使用情况 :

    df
            Size         Used        Avail       (root)    %Capacity
        20616252      1548776     18002580     19067476           7%
  • 在远程服务器上创建一个新目录:

    mkdir directory_name
  • 重命名远程服务器上的文件:

    rename file_name new_file_name
  • 删除远程服务器上的文件:

    rm file_name
  • 删除远程服务器上的目录:

    rmdir directory_name
  • 改变权限远程系统上的文件:

    chmod 644 file_name
  • 更改远程系统上文件的所有者:

    chown user_id file_name

    您必须向chown and chgrp命令。

  • 使用以下命令更改远程文件的组所有者:

    chgrp group_id file_name

完成工作后,输入以下命令关闭连接bye or quit.

结论#

在本教程中,我们向您展示了如何使用sftp命令下载文件并将其上传到远程 SFTP 服务器。

您可能还想设置一个基于 SSH 密钥的身份验证无需输入密码即可连接到您的 Linux 服务器。如果您经常连接到相同的系统,您可以通过在SSH 配置文件 .

如果您有任何问题或反馈,请随时发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用SFTP命令传输文件 的相关文章

  • 使用单个 shell 脚本运行 React 和 Flask

    我构建了一个使用 ReactJS 作为前端和 Flask 作为中间件的应用程序 我可以使用以下命令序列来执行它 npm start cd Equation Solver python m flask run 执行第一个命令后 我必须打开另一
  • Emacs 退出终端

    在 Emacs 中运行终端模式时使用M x term using C x C o我无法切换到另一个缓冲区来继续处理事情 我知道这是可能的M x shell但使用此命令时 shell 的某些方面不起作用 less more 手册页等 我想知道
  • 使用Python mysql.connector远程连接MySQL

    以下代码 在同一 LAN 内与 mysql 服务器不同的机器上运行 使用 Python3 和 mysql connector 本地连接到 MySQL 数据库 import mysql connector cnx mysql connecto
  • 当 URL 可在浏览器中访问时,SSH Curl 不起作用

    This post is linked with another post of mine still unsolved Laravel 作曲家更新 连接被拒绝 https stackoverflow com questions 52404
  • ssh 的 url 方案:在远程主机上调用命令

    是否有通过 ssh 调用远程主机上的命令的 url 方案 在我的用例中 我想称之为 psql c select from my table order by id 似乎有一个关于连接参数的 RFC 示例 来自https tools ietf
  • 流浪家园慢

    我有一个基于 Laravel Homestead 的 vagrant 服务器 用于在本地测试我的 Laravel 站点 大部分情况下它运行得很好 然而 最近 我遇到了问题 它会停止几分钟 典型 到几个小时 罕见 这种情况每 15 分钟左右就
  • 如何访问 Google Cloud Platform Compute Engine VM 实例的 SSH 密钥?

    我通过 Google Cloud Web 控制台从 CentOS 6 x 映像创建了一个新实例 我在创建表单上看到一个空白 我可以在其中粘贴现有的 SSH 密钥 因为这是我的第一个实例 所以我还没有 我以为它会像 Amazon EC2 一样
  • 安装 oAuth PECL 错误:无法安装,当前用户无法写入频道“pecl.php.net”的 php_dir

    我尝试在 OS X 上安装 oAuth 但在终端中收到此错误 无法安装 当前用户无法写入频道 pecl php net 的 php dir 我如何让它可写 首先找出php dir在哪里 您可以使用 config get 命令来执行此操作 p
  • Windows 控制台“ESC[2J”并没有真正“清除”屏幕

    我知道这类问题经常被问到 但我认为这个问题有点不同 需要被问到 新的 Windows 控制台支持 ANSI VT100 控制代码 ANSI VT100 控制代码 http www termsys demon co uk vtansi htm
  • 通过 SSH 将变量传递给远程脚本

    我正在通过 SSH 从本地服务器在远程服务器上运行脚本 首先使用 SCP 复制该脚本 然后在传递一些参数时调用该脚本 如下所示 scp path to script server example org another path ssh s
  • PHP shell_exec 使用 ssh 运行 shell 脚本

    我有一个 shell 脚本 使用 ssh 和密钥连接到另一台机器 因此它不需要用户名和密码 当我从命令行运行这个脚本时 它工作正常 但是当我从 php shell exec 运行这个脚本时 它不起作用 如果我与 PHP 建立 ssh 连接并
  • 如何从 Linux 的 shell 中删除所有以 ._ 开头的文件?

    确实如标题所示 我已将许多文件从 Mac 复制到 Raspberry Pi 这导致了许多以前缀开头的多余文件 我想删除以以下开头的文件夹中的每个文件 我该怎么做 尝试类似的方法 cd path to directory rm rf 或者 如
  • Linux命令列出所有可用命令和别名

    是否有一个 Linux 命令可以列出该终端会话的所有可用命令和别名 就好像您输入 a 并按下 Tab 键一样 但针对的是字母表中的每个字母 或者运行 别名 但也返回命令 为什么 我想运行以下命令并查看命令是否可用 ListAllComman
  • Mac OS X 中 Bash 脚本中的 SFTP 命令

    我需要使用 SFTP 和 SSH 从 Mac 主机将文本文件传输到远程 PC freeSSH 这两个连接在本地网络中 那么有没有办法从 Bash 脚本内部运行 SFTP 命令 使用提供的用户名和密码 我已经尝试过一些脚本expect 但我没
  • Paramiko ValueError“p 的长度必须恰好为 1024、2048 或 3072 位”

    我正在尝试使用 Python 脚本连接 SFTP 由于 p 错误 我无法连接 import paramiko client paramiko SSHClient client load system host keys client con
  • Gulp 错误:找不到模块“jshint/src/cli”

    因此 我重新安装了 El Capitan 并再次尝试这些任务运行程序 我正在跟进sitepoint 的 Gulp js 简介 http www sitepoint com introduction gulp js 但当我尝试运行时 我陷入了
  • 如何不断刷新屏幕并实时更新[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在linux上写一个C程序 不断刷新屏幕并实时更新 例如类似于top终端中的命令 谁能指出我正确的方向 为了保持它跨终端类型的可移
  • 无法使用 git 配置文件进行 ssh

    我知道它被问了很多次 但我无法得到我的问题的答案 我正在尝试使用配置文件 ssh 到系统 配置文件是 Host qa HostName 10 218 70 345 User user IdentityFile C Users bean ss
  • SSH 到 Openshift 服务器失败

    我正在 openshift 服务器上使用 jboss catridge 我希望与其他人共享此实例并添加其他用户的公钥 id rsa pub 当其他人尝试访问该实例时 他会收到以下错误 我在他的实例中尝试了同样的方法 但看到了同样的错误 与
  • 如何在 Visual Studio Code 中从集成终端引用当前文件

    我想知道是否可以 使用内置变量 直接使用集成终端在 Visual Studio 中打开的当前文件 例如 gt some command current file Where current file would be a built in

随机推荐

  • Linux 中的 tar 命令及实际示例

    tar 命令是 Linux 用户的必备工具 特别是对于那些使用大量文件的用户 tar 命令允许您将多个文件组合成一个存档文件 还可以从存档中提取文件 在本文中 我们将为初学者提供有关 Linux 中 tar 命令基础知识的全面指南 什么是
  • 什么是 SNMP(简单网络管理协议)?

    简单网络管理协议 SNMP 是任何网络管理员工具箱中不可或缺的一部分 作为许多网络监控策略的支柱 SNMP 在维护健康且功能正常的网络方面发挥着关键作用 本文旨在深入研究 SNMP 的复杂性 重点介绍其功能 应用程序以及为什么它在当今的网络
  • 如何在 Ubuntu 20.04 上安装 Ruby

    Ruby 是动态的开源编程语言 其重点是编码简单性和提高生产力 第一个 Ruby 版本 0 95 于 1995 年发布 此后 在过去几年中发布了几个稳定的 Ruby 版本 在撰写本教程时 Ruby 2 7 0 是可用于开发的最新稳定版本 本
  • OpenSSL:使用 SSL 证书、私钥和 CSR

    OpenSSL 是一个强大的 功能齐全的开源工具包 它实现了 SSL 和 TLS 协议以及通用加密库 它广泛用于管理各种系统中的 SSL TLS 证书 私钥和证书签名请求 CSR 在本文中 我们将探讨如何使用 OpenSSL 来处理 SSL
  • 如何通过 PPA 在 Ubuntu 18.04 和 16.04 上安装 Libreoffice 6.2

    LibreOffice 6 2 已发布并可在官方向后移植 PPA用于 Ubuntu 系统上的安装 它是一款免费的办公套件应用程序 与以前的版本相比有许多增强功能 它包含了许多有用的功能 使办公室管理变得非常容易 它是专门针对 Linux 桌
  • 使用 Python 函数

    在编程时 我们经常重复执行相同的任务 例如执行数字加法或使用不同的输入打印相同的语句 这些是一般示例 但对于这些示例 您愿意编写相同的代码 10 次还是只编写一次 这就是函数的目的 它们是仅针对特定任务定义一次的代码片段 并具有可重用的功能
  • 在 HDFS 中创建目录并复制文件 (Hadoop)

    HDFS is the Hadoop分布式文件系统 它是一个用于大型数据集的分布式存储系统 支持容错 高吞吐量和可扩展性 它的工作原理是将数据划分为在集群中的多台机器上复制的块 这些块可以并行写入或读取 从而提高吞吐量和容错能力 HDFS
  • 如何在 Debian 11/10/9 上安装 Gulp.js

    Gulp是一个工具包 可帮助开发人员在开发过程中实现痛苦工作流程的自动化 本教程将帮助您在 Debian 11 Debian 10 和 Debian 9 操作系统上安装 Gulp 第 1 步 安装 Node js 首先 你需要安装node
  • 如何在 Linux 中递归更改文件的权限

    如果您使用 Linux 作为主要操作系统或管理 Linux 服务器 您会遇到尝试创建或编辑文件并收到 权限拒绝 错误的情况 通常 与权限不足相关的错误可以通过设置正确的文件权限或所有权 Linux 是一个多用户系统 对文件的访问是通过文件权
  • 如何显示 MySQL 中所有数据库的列表

    给药时MySQL对于数据库服务器 您要做的最常见的任务之一就是熟悉环境 这涉及诸如列出驻留在服务器上的数据库等任务 显示表格特定数据库的信息或获取有关用户帐户及其权限的信息 本教程介绍如何通过命令行显示 MySQL 或 MariaDB 服务
  • 如何创建 Tar Gz 文件

    tar 存档是一个存储其他文件集合的文件 包括有关这些文件的信息 例如所有权 权限和时间戳 在 Linux 操作系统中 您可以使用tar创建 tar 档案的命令 该命令还可以使用各种压缩程序来压缩档案 其中 gzip 是最流行的算法 按照约
  • 如何在 Ubuntu 20.04 上安装 GCC (build-essential)

    GNU 编译器集合 GCC 是 C C Objective C Fortran Ada Go D 编程语言 很多开源项目 包括Linux内核和GNU工具 都是使用GCC编译的 本文介绍如何在 Ubuntu 20 04 上安装 GCC 在 U
  • 如何在 Debian 9 上安装和使用 FFmpeg

    FFmpeg 是一个免费的开源命令行工具 用于对多媒体文件进行转码 它包含一组共享的音频和视频库 例如libavcodec libavformat和libavutil 使用 FFmpeg 您可以在各种视频和音频格式之间进行转换 设置采样率以
  • 如何在 Ubuntu 18.04 上安装 Python 3.7

    Python 是世界上最流行的编程语言之一 凭借其简单易学的语法 Python 是初学者和经验丰富的开发人员的绝佳选择 Python 是一种非常通用的编程语言 它可以用作脚本语言来构建游戏 开发网站 创建机器学习算法和分析数据 Python
  • 如何在 CentOS 7 上安装 VLC 媒体播放器

    VLC 是一种流行的开源多媒体播放器和流媒体服务器 它是跨平台的 几乎可以播放所有多媒体文件以及 DVD 音频 CD 和不同的流媒体协议 本教程介绍如何在 CentOS 7 上安装 VLC 媒体播放器 先决条件 您需要以以下身份登录具有 s
  • 如何在 Ubuntu 20.04 上安装和使用 FFmpeg

    FFmpeg 是一个用于处理多媒体文件的免费开源工具集合 它包含一组共享的音频和视频库 例如libavcodec libavformat和libavutil 使用 FFmpeg 您可以在各种视频和音频格式之间进行转换 设置采样率 捕获流音频
  • Linux 睡眠命令(暂停 Bash 脚本)

    sleep是一个命令行实用程序 允许您将调用进程挂起指定的时间 换句话说 sleep命令将下一个命令的执行暂停给定的秒数 The sleep该命令在 bash shell 脚本中使用时非常有用 例如 在重试失败的操作或在循环内时 在本教程中
  • 如何在 Ubuntu 18.04 上安装 CouchDB

    CouchDB 是由 Apache 软件基金会维护的免费开源容错 NoSQL 数据库 CouchDB 服务器将其数据存储在命名数据库中 其中包含以下文档JSON结构 每个文档由许多字段和附件组成 字段可以包括文本 数字 列表 布尔值等 它包
  • 如何在 Debian 10 上安装 Xrdp 服务器(远程桌面)

    Xrdp 是 Microsoft 远程桌面协议 RDP 的开源实现 允许您以图形方式控制远程系统 使用 RDP 您可以登录到远程计算机并创建真实的桌面会话 就像登录到本地计算机一样 本教程介绍如何在 Debian 10 Linux 上安装和
  • 如何使用SFTP命令传输文件

    SFTP SSH 文件传输协议 是一种安全文件协议 用于通过加密的 SSH 传输访问 管理和传输文件 与传统的相比FTPSFTP 提供 FTP 的所有功能 但更安全且更易于配置 Unlike SCPSFTP 仅支持文件传输 但允许您对远程文