菜鸟科技网

Windows系统如何使用scp命令?

scp (Secure Copy) 是一个在 Linux 和 macOS 系统上广泛使用的命令,用于在本地和远程主机之间安全地复制文件,由于 Windows 10/11 的更新,现在也可以非常方便地使用 scp 了。

Windows系统如何使用scp命令?-图1
(图片来源网络,侵删)

核心要点

在 Windows 上使用 scp 主要有两种方式:

  1. 推荐方式:使用 Windows 内置的 OpenSSH 客户端 (适用于 Windows 10/11)

    • 优点:无需安装任何额外软件,与 Linux/macOS 的 scp 命令完全兼容,性能好。
    • 缺点:仅适用于较新的 Windows 10/11 版本。
  2. 传统方式:使用第三方工具 (如 PuTTY 或 Git for Windows)

    • 优点:兼容性广,适用于所有 Windows 版本。
    • 缺点:需要额外安装和配置,命令可能略有不同。

使用 Windows 内置的 OpenSSH (最推荐)

这是目前最简单、最强大的方法。

Windows系统如何使用scp命令?-图2
(图片来源网络,侵删)

检查并安装 OpenSSH 客户端

如果你的 Windows 是最新的版本(通常是在 2025 年 10 月之后更新的),它很可能已经预装了 OpenSSH 客户端,你可以通过以下步骤检查:

  1. 打开 设置 (Win + I)。
  2. 进入 应用 > 可选功能
  3. 在功能列表中查找 OpenSSH 客户端
  4. 如果找到了,说明已经安装,可以直接跳到第 2 步,如果没有,点击 添加功能,搜索并安装它。

你也可以通过 PowerShell 来检查和安装:

# 检查是否已安装
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'
# 如果未安装,运行此命令进行安装
# Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

使用 scp 命令

安装完成后,直接在 命令提示符PowerShellWindows Terminal 中使用 scp 命令即可,它的语法和 Linux/macOS 完全一样。

基本语法:

scp [选项] [源文件] [目标地址]

常用选项:

  • -P:指定远程主机的端口号(注意是大写 P)。
  • -r:递归复制整个目录。
  • -p:保留文件的修改时间、访问时间和权限。
  • -i:指定私钥文件(用于密钥登录)。

实用示例

假设:

  • 你的 Windows 本地机: user-windows-pc
  • 你的远程 Linux 服务器: 168.1.100 (用户名 remoteuser, 密码 yourpassword)
  • 要传输的文件: C:\Users\YourUser\Desktop\report.txt
  • 要传输的目录: C:\Users\YourUser\Documents\project_folder

示例 1:从 Windows 下载单个文件到本地

将远程服务器上的 /home/remoteuser/report.txt 下载到 Windows 的当前目录。

# 格式: scp [远程用户]@[远程主机IP]:[远程文件路径] [本地路径]
scp remoteuser@192.168.1.100:/home/remoteuser/report.txt .

表示当前目录。

示例 2:从 Windows 上传单个文件到远程服务器

将 Windows 上的 report.txt 上传到远程服务器的 /home/remoteuser/ 目录下。

# 格式: scp [本地文件路径] [远程用户]@[远程主机IP]:[远程目标路径]
scp report.txt remoteuser@192.168.1.100:/home/remoteuser/

示例 3:下载整个目录

将远程服务器上的 /home/remoteuser/project_folder 目录下载到 Windows 的当前目录。

# 格式: scp -r [远程用户]@[远程主机IP]:[远程目录路径] [本地路径]
scp -r remoteuser@192.168.1.100:/home/remoteuser/project_folder .

示例 4:上传整个目录

将 Windows 上的 project_folder 目录上传到远程服务器的 /home/remoteuser/ 目录下。

# 格式: scp -r [本地目录路径] [远程用户]@[远程主机IP]:[远程目标路径]
scp -r project_folder remoteuser@192.168.1.100:/home/remoteuser/

示例 5:使用非标准端口号

如果你的 SSH 服务器运行在 2222 端口,而不是默认的 22 端口。

# 格式: scp -P [端口号] ...
scp -P 2222 remoteuser@192.168.1.100:/home/remoteuser/report.txt .

重要scp 的端口号选项是 -P(大写),而不是 -p

示例 6:使用 SSH 密钥进行免密登录

如果你已经配置了 SSH 密钥对,可以避免每次都输入密码。

# 格式: scp -i [私钥文件路径] ...
scp -i C:/Users/YourUser/.ssh/id_rsa remoteuser@192.168.1.100:/home/remoteuser/report.txt .

注意:路径中的反斜杠 \ 在 PowerShell 中可能会被转义,所以使用正斜杠 通常更安全。


使用第三方工具 (PuTTY)

如果你的 Windows 版本较旧,或者你已经是 PuTTY 用户,可以使用 PuTTY 提供的 pscp.exe 工具。

下载并安装 PuTTY

  1. 访问 PuTTY 官方下载页面
  2. 下载 putty.zip 压缩包。
  3. 解压,将 pscp.exe 文件放到一个系统环境变量 PATH 包含的目录中(C:\Windows\System32),或者记住它的存放路径。

使用 pscp 命令

打开 命令提示符PowerShell,使用 pscp 命令,它的语法与原生 scp 略有不同。

基本语法:

pscp [选项] [源文件] [目标地址]

常用选项:

  • -P:指定端口号(同样是大写 P)。
  • -r:递归复制目录。
  • -pw:在命令行中指定密码(不安全,不推荐,仅在自动化脚本等安全可控的环境下使用)。
  • -i:指定私钥文件(PuTTY 格式的 .ppk 文件)。

pscp 实用示例

(环境同上)

# 下载文件
# 格式: pscp [远程用户]@[远程主机IP]:[远程文件路径] [本地路径]
pscp remoteuser@192.168.1.100:/home/remoteuser/report.txt .
# 上传文件
# 格式: pscp [本地文件路径] [远程用户]@[远程主机IP]:[远程目标路径]
pscp report.txt remoteuser@192.168.1.100:/home/remoteuser/
# 下载目录
# 格式: pscp -r [远程用户]@[远程主机IP]:[远程目录路径] [本地路径]
pscp -r remoteuser@192.168.1.100:/home/remoteuser/project_folder .
# 上传目录
# 格式: pscp -r [本地目录路径] [远程用户]@[远程主机IP]:[远程目标路径]
pscp -r project_folder remoteuser@192.168.1.100:/home/remoteuser/
# 使用非标准端口
# 格式: pscp -P [端口号] ...
pscp -P 2222 remoteuser@192.168.1.100:/home/remoteuser/report.txt .

总结与对比

特性 Windows 内置 OpenSSH (scp) PuTTY (pscp)
易用性 ⭐⭐⭐⭐⭐ (无需安装,开箱即用) ⭐⭐⭐ (需要下载和配置 PATH)
兼容性 ⭐⭐⭐ (仅限 Win 10/11) ⭐⭐⭐⭐⭐ (所有 Windows 版本)
命令语法 与 Linux/macOS 完全一致 基本相同,但有一些细微差别
推荐度 强烈推荐 (如果系统支持) 备选方案

最终建议:

  • 如果你使用的是 Windows 10 或 Windows 11,请毫不犹豫地使用方式一(内置 OpenSSH)。 这是官方、现代且最方便的解决方案。
  • 如果你使用的是 Windows 7 或更早版本,或者已经是 PuTTY 生态用户,请使用方式二(PuTTY 的 pscp)。
分享:
扫描分享到社交APP
上一篇
下一篇