在日常工作中,我们经常需要在不同操作系统之间传输文件。如果你的 Windows 已经开启了 SSH 服务,那么可以直接通过 Linux 的 scp命令将文件传到 Windows 的任意目录,比如 C:盘。下面我将详细介绍操作步骤。
1. 确认 Windows 信息
首先,我们需要在 Windows 上获取一些关键信息。
① 查看 IP 地址
打开 PowerShell 或 CMD,运行:
ipconfig
找到类似:
IPv4 Address. . . . . . . . . . . : 192.168.1.100
② 确认用户名
例如你的 Windows 登录名是 john。
③ 确认 SSH 服务已开启
在 PowerShell(管理员)中运行:
Get-Service sshd
状态应为 Running。
如果没有安装 OpenSSH Server,可以在"设置 → 应用 → 可选功能 → 添加功能"中安装 OpenSSH Server,并启动服务:
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
同时开放防火墙端口:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
2. 在 Linux 上执行 SCP 命令
基本语法:
scp /本地路径/1.txt windows用户名@windowsIP:C:/目标路径/
示例
假设:
-
Linux 当前目录下有
1.txt -
Windows IP:
192.168.1.100 -
Windows 用户名:
john -
目标路径:
C:\test(请确保该文件夹已存在)
命令:
scp ./1.txt john@192.168.1.100:C:/test/
3. 注意事项
✅ 路径写法
Windows 路径在 SCP 中要用 正斜杠 / 或双反斜杠 \\,推荐用 /。
例如:
C:/test/1.txt
或
C:\\test\\1.txt
⚠️ C盘根目录写入权限
默认情况下,普通用户不能直接写入 `C:`根目录,可能会报权限错误。
建议传到用户目录或先建好一个有权限的文件夹,比如:
C:/Users/john/Documents/
🔐 首次连接会提示指纹确认
第一次连接时会问:
Are you sure you want to continue connecting (yes/no)?
输入 yes回车,然后输入 Windows 用户密码。
4. 完整示例流程
# 在 Linux 终端
scp ./1.txt john@192.168.1.100:C:/Users/john/Documents/
# 输出示例
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.100' (ECDSA) to the list of known hosts.
john@192.168.1.100's password:
1.txt 100% 123 0.1KB/s 00:00
成功后,你就可以在 Windows 的 C:\Users\john\Documents\` 找到1.txt`。
5. 总结
通过 SSH + SCP,我们可以方便地在 Linux 和 Windows 之间传输文件,无需额外的 FTP 或共享文件夹。只要确保 Windows 的 SSH 服务正常运行,并且目标路径有写入权限,就可以顺利完成文件传输。