菜鸟科技网

cmd sftp命令怎么用?

核心要点

最重要的一点是:Windows 自带的 cmd.exe 中并没有原生内置 sftp 命令。

cmd sftp命令怎么用?-图1
(图片来源网络,侵删)

sftp (SSH File Transfer Protocol) 是一个独立的客户端程序,通常随 OpenSSH 服务器/客户端软件包一起提供,要在 cmd 中使用 sftp,你需要先确保你的 Windows 系统上安装了它。


第1步:检查并安装 OpenSSH 客户端

大多数现代 Windows 10/11 系统已经默认安装了 OpenSSH 客户端,你可以通过以下方式检查:

  1. 打开 命令提示符 (cmd) 或 PowerShell
  2. 输入以下命令并按回车:
    sftp -V
    • 如果看到版本信息(OpenSSH_for_Windows_8.1p1, OpenSSL 1.1.1k 25 Mar 2025),说明你已经安装好了,可以直接跳到第2步。
    • 如果提示 'sftp' 不是内部或外部命令,也不是可运行的程序或批处理文件,说明你需要安装它。

如何安装 OpenSSH 客户端?

通过设置应用(推荐)

  1. 打开 设置 > 应用 > 可选功能
  2. 点击 添加功能
  3. 在搜索框中输入 OpenSSH
  4. 找到 OpenSSH 客户端,点击 安装

通过 PowerShell(以管理员身份运行)

cmd sftp命令怎么用?-图2
(图片来源网络,侵删)
  1. 在开始菜单搜索 PowerShell,右键点击并选择 以管理员身份运行
  2. 输入以下命令并回车:
    Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
  3. 等待安装完成。

第2步:了解 SFTP 命令的基本语法

安装成功后,你就可以在 cmd 中使用 sftp 了,其基本语法如下:

sftp [用户名@]主机名 [端口号]
  • [用户名@]: 可选,你的 SFTP 服务器用户名,如果不提供,命令会提示你输入。
  • 主机名: SFTP 服务器的 IP 地址或域名(168.1.100ftp.example.com)。
  • [端口号]: 可选,SFTP 服务的端口号,默认是 22,如果你的服务器使用了非标准端口,需要在这里指定。

第3步:SFTP 交互式会话常用命令

当你成功连接到 SFTP 服务器后,会进入一个交互式命令行环境,这里的命令与传统的 FTP 有些相似,但更强大、更安全。

连接示例

sftp myuser@192.168.1.100

系统会提示你输入 myuser 用户的密码,输入正确后,你将看到 sftp> 提示符。

常用 SFTP 命令列表

命令 描述 示例
ls 列出当前远程目录下的文件和文件夹 ls -l (显示详细信息)
cd 切换远程目录 cd /var/www/html
pwd 显示当前所在的远程目录路径 pwd
get 从远程下载文件到本地 get remote_file.txt
get -r remote_folder (下载整个目录)
put 从本地上传文件到远程 put local_file.txt
put -r local_folder (上传整个目录)
mkdir 在远程服务器上创建新目录 mkdir new_directory
rmdir 删除远程的目录 rmdir empty_directory
rm 删除远程文件 rm unwanted_file.txt
exitbye 关闭 SFTP 连接,退出会话 exit
help 显示所有可用的 SFTP 命令及其帮助 help

第4步:完整操作示例

假设我们要将本地的一个文件 report.pdf 上传到远程服务器的 /home/myuser/documents/ 目录下。

cmd sftp命令怎么用?-图3
(图片来源网络,侵删)
  1. 打开 cmd 并连接服务器

    C:\Users\YourName> sftp myuser@192.168.1.100
    myuser@192.168.1.100's password: ********
    Connected to 192.168.1.100.
    sftp>
  2. 检查并切换到远程目标目录

    sftp> pwd
    Remote working directory: /home/myuser
    sftp> cd documents
    sftp> pwd
    Remote working directory: /home/myuser/documents
  3. 上传本地文件 假设你的 report.pdf 文件在 C:\Users\YourName\Downloads\ 目录下,你需要先在 cmd 中切换到那个目录,或者在 put 命令中指定完整路径。

    # 先退出SFTP,在cmd里切换目录,再重新进入SFTP(不方便)
    # 更好的方法是在put命令中使用完整路径
    sftp> put C:\Users\YourName\Downloads\report.pdf
    Uploading C:\Users\YourName\Downloads\report.pdf to /home/myuser/documents/report.pdf
    report.pdf      100%  250KB  25.0KB/s   00:00
    sftp>

    文件上传成功。

  4. 下载一个文件到本地 假设远程服务器上有一个 backup.zip 文件,我们想把它下载到 C:\Temp

    sftp> get backup.zip C:\Temp\backup.zip
    Downloading /home/myuser/documents/backup.zip to C:\Temp\backup.zip
    backup.zip      100%   1.2MB  120.0KB/s   00:10
    sftp>
  5. 退出会话

    sftp> exit
    C:\Users\YourName>

第5步:高级用法 - 直接执行命令(非交互式)

你只想执行一个 SFTP 命令而不想进入交互式会话,这时可以使用 batch 模式或 -b 选项。

方法:使用 -b 选项指定一个批处理文件

  1. 创建一个文本文件upload_commands.txt),里面包含你要执行的 SFTP 命令,每行一个。

    # upload_commands.txt 的内容
    put C:\local\file.txt /remote/path/
    exit
  2. cmd 中执行以下命令

    sftp -b upload_commands.txt myuser@192.168.1.100

    系统会提示你输入密码,然后依次执行 upload_commands.txt 中的命令,执行完后自动退出,这对于自动化脚本(如 Windows 任务计划程序)非常有用。


总结与重要提示

  1. 先安装:确保你的 Windows 系统上已安装 OpenSSH 客户端。
  2. 区分本地和远程:在 SFTP 会话中,ls, cd, pwd 等命令操作的是远程服务器,而你的 Windows 命令提示符本身的 dir, cd, echo 等命令操作的是本地计算机
  3. 路径分隔符:远程服务器通常是 Linux/Unix 系统,使用正斜杠 作为路径分隔符,Windows 本地路径使用反斜杠 \
  4. 安全性:SFTP 通过 SSH 加密,比传统的 FTP 安全得多,请勿使用明文传输敏感数据的 FTP。
  5. 图形化工具:如果你觉得命令行不方便,也可以使用图形化的 SFTP 客户端,如 FileZilla, WinSCP, MobaXterm 等,它们提供了更直观的拖拽操作界面。
分享:
扫描分享到社交APP
上一篇
下一篇