Skip to content

windows上传文件至Linux服务器

方式一:使用SCP命令

  • 介绍:SCP(Secure Copy Protocol)是一种基于SSH的文件传输协议,适用于单个文件或目录的传输

  • 步骤:

    1. 确保Linux服务器已启用SSH服务

      shell
      sudo systemctl status ssh

      image-20250918151341646

      • 如果未安装SSH,通过下面命令安装

        shell
        sudo apt-get update
        sudo apt-get install openssh-server
      • 检查防火墙,确保允许SSH

        shell
        sudo ufw allow ssh
        sudo ufw reload
      • 其他命令

        shell
        # 启动 SSH 服务
        sudo systemctl start ssh
        
        # 设置 SSH 开机自启动
        sudo systemctl enable ssh
        
        # 取消 SSH 开启自启动
        sudo systemctl disable ssh
    2. windows命令行执行下面命令

      • 上传单个文件

        shell
        scp "D:\\__UNI__3006FD1__20250918143051.apk" root@你的服务器ip:/var/nginx/resources/carb_ignite/apk/
      • 上传整个文件夹(加上 -r 参数)

        shell
        scp -r "D:\\data" root@你的服务器ip:/var/nginx/resources/carb_ignite/apk/
      • 注意:不管是上传单个文件还是文件夹,windows的路径要么用正斜杠 / 或者 反斜杠 \\ ,别用单个反斜杠\,否则上传到服务器上的文件就成了 D:\__UNI__3006FD1__20250918143051.apk 这种完整的路径的样子了

    3. 输入Linux服务器密码后,文件上传成功,下面图片中windows文件路径不对,应该是单正斜杠或者双反斜杠

      image-20250918152212569

      image-20250918152231129

方式二:使用工具WinSCP

SCP常用操作

1、上传本地文件到Linux服务器:上述已表述,不赘述

2、从Linux服务器上下载文件

  • 场景举例:将服务器上 /var/logs/app.log 文件下载到本地D盘下

  • 代码示例

    shell
    scp root@服务器ip:/var/logs/app.log D:\

3、从Linux服务器上下载整个目录(加上 -r 参数)

  • 场景举例:将服务器上 /var/logs 文件夹下载到本地D盘下

  • 代码示例

    shell
    scp root@服务器ip:/var/logs D:\

'scp' 不是内部或外部命令,也不是可运行的程序或批处理文件。

问题可能出现的原因

  • 原因一:系统中未安装支持SCP的软件,如OpenSSH、Git Bash或PuTTY
  • 原因二:对应工具的安装路径未添加到环境变量中

解决方案

  • 方案一:确保支持SCP的软件安装成功
  • 方案二:对应工具的安装路径(如git:git安装路径\usr\bin)添加到环境变量中
  • 方案三:此外可以直接通过 PowerShell 或 Git Bash使用SCP命令,从而避免环境变量配置的问题

MIT版权,未经许可禁止任何形式的转载