You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无需Cygwin,从远程Windows机器向Linux机器复制文件的方法

不用Cygwin实现Windows到Linux的文件复制

我来给你几个实用的方案,完全不需要装Cygwin就能搞定这个需求:

方案1:用Windows原生OpenSSH客户端(推荐,无需额外软件)

现在Win10和Win11默认自带了OpenSSH客户端,直接用它从Windows端把文件推到Linux就行,步骤很简单:

  • 先确认OpenSSH客户端已安装:打开「设置」→「应用」→「可选功能」,搜索「OpenSSH客户端」,如果没装就点「添加功能」安装。或者用PowerShell快速检查:
    Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'
    
    要是显示未安装,就运行:
    Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
    
  • 打开Windows的命令提示符(CMD)或者PowerShell,运行scp命令推送文件:
    scp E:\file.txt 你的Linux用户名@Linux机器IP或主机名:/Linux上的目标路径/
    
    比如你的Linux用户是ubuntu,机器IP是192.168.1.100,目标路径是/home/ubuntu/,那命令就是:
    scp E:\file.txt ubuntu@192.168.1.100:/home/ubuntu/
    
    输入Linux用户的密码就能完成复制了。

方案2:在Linux上通过SMB访问Windows共享

利用Windows自带的文件共享功能,在Linux上挂载Windows的共享目录后复制文件:

  1. 在Windows端:找到E:\file.txt所在的文件夹,右键→「属性」→「共享」,设置共享权限(比如允许你的Windows用户访问,或者临时开guest权限,不过后者不安全)。
  2. 在Linux端:先安装SMB客户端工具,不同发行版命令不同:
    • Debian/Ubuntu系列:
      sudo apt update && sudo apt install smbclient
      
    • CentOS/RHEL系列:
      sudo yum install samba-client
      
  3. 连接Windows共享并下载文件:
    运行命令(替换成你的Windows机器IP、用户名和共享路径):
    smbclient //192.168.1.200/E$ -U 你的Windows用户名
    
    输入Windows密码后,会进入smbclient交互界面,用get file.txt /home/你的Linux用户/就能把文件下载到Linux指定路径。
    也可以用非交互命令直接下载(注意密码明文会暴露,不推荐在公共环境用):
    smbget smb://你的Windows用户名:密码@192.168.1.200/E$/file.txt -O /home/你的Linux用户/file.txt
    

方案3:用WinSCP图形化工具(适合怕命令行的用户)

这是Windows上免费的SFTP/FTP图形化工具,完全不用命令行,拖放就能复制:

  • 下载安装WinSCP后,新建会话:协议选「SFTP」,输入Linux机器的IP、用户名、密码,点击「登录」。
  • 登录成功后,左侧是Windows本地文件目录,右侧是Linux机器的目录,找到E:\file.txt直接拖到右侧目标目录就行,全程可视化操作,非常省心。

关于你之前尝试的命令的说明

你之前在Linux上跑的scp windows-machine:e:\file.txt是行不通的,原因有两个:

  1. Linux的scp无法直接识别Windows的盘符路径格式,除非Windows机器上装了SSH服务器,并且路径要写成Windows SSH服务能识别的格式(比如/e/file.txt而不是e:\file.txt)。
  2. 即使Windows装了SSH服务,从Linux拉文件也需要Windows端的权限验证,不如直接从Windows推文件到Linux来得方便。

内容的提问来源于stack exchange,提问作者Pa1

火山引擎 最新活动