首页/系统/Windows 运维速查/scp/sftp 传输(Windows 自带 OpenSSH)

scp/sftp 传输(Windows 自带 OpenSSH)

Windows 10/Server 2019+ 自带 OpenSSH 客户端:scp 传文件、sftp 交互传,脚本化比 SMB 更中立。

Windows 运维速查系统更新于 2026-10-13

scp 与 sftp 传输文件

Windows 10 与 Server 2019 以后自带 OpenSSH 客户端,scp 和 sftp 可以直接使用:scp 适合一次性复制文件或目录,sftp 是交互式会话,脚本里则用 sftp -b 批处理模式。相比 SMB,SSH 通道更容易跨平台、跨网络边界使用,也不受域信任关系影响,是异构环境里传文件的中立选择。

基本信息

适用平台Windows 10 / Server 2019 及以上,自带 OpenSSH 客户端
复制文件scp .\本地文件 user@主机:C:/目标路径
递归复制scp -r 目录 user@主机:C:/目标
指定端口scp -P 2222(大写 P)
批量模式sftp -b 批处理文件 user@主机

典型使用场景

  • 在 Windows 与 Linux 之间传文件,不用配置共享或挂载
  • 脚本化部署:把构建产物推送到目标主机的指定目录
  • 通过非标准 SSH 端口访问跳板机或受限主机
  • 传输敏感文件时走加密通道,而不是明文 FTP
  • 用 sftp 批处理在自动化流程中上传或下载多个文件
  • 跨网络边界分发配置或采集日志,不需要打通域信任关系
  • 配合密钥认证做免交互传输,供流水线或计划任务调用

常用示例

常用示例
scp .\report.zip ops@web01:C:/temp/report.zip      # 上传单个文件
scp -r .\config ops@web01:C:/temp/config            # 递归上传目录
scp -P 2222 .\app.tar.gz ops@web01:C:/temp/         # 指定非默认端口
sftp ops@web01                                      # 交互式:get 下载、put 上传
# 批处理模式(自动化脚本用):
# sftp -b upload.txt ops@web01    其中 upload.txt 内写 put 与 get 指令

操作对照

操作命令注意
上传文件scp 本地 主机:远端远端路径用正斜杠
下载文件scp 主机:远端 本地路径两端语义不同
递归目录scp -r大量小文件效率低
指定端口-P 端口大写 P,小写语义不同
批量传输sftp -b 文件适合自动化脚本
远端 Windows 路径写成 C:/temp 这样的正斜杠形式,写成反斜杠容易被当成远端相对路径,文件会落到非预期位置。
scp 不做增量同步也不支持断点续传,大量小文件或大文件建议先打包,或者改用 robocopy 走 SMB 通道更合适。首次连接会提示确认主机指纹,自动化脚本里要预先分发 known_hosts 或明确接受策略。

易错点

  • 远端路径用了反斜杠:文件落到相对路径,找不到文件还以为是传输失败
  • 端口参数写成小写 -p:语义不同,连接仍走默认端口
  • 用 scp 传大量小文件:逐个建立连接的开销很大,速度远低于预期
  • 依赖 scp 做目录同步:它不做差异比对,每次都是全量覆盖

数据来源与参考

  • Microsoft Learn:Windows 中的 OpenSSH
  • Microsoft Learn:scp

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌