美文网首页
网络问题,下载很快,上传很慢,甚至不能上传过大或过多的文件到服务

网络问题,下载很快,上传很慢,甚至不能上传过大或过多的文件到服务

作者: JIAWEIJIAWEI | 来源:发表于2024-06-12 21:00 被阅读0次

网络问题,下载很快,上传很慢,甚至不能上传过大(压缩包)或过多的文件到服务器时的临时替补方法

本地windows,远程服务器Linux

一、方法:逐个文件用scp命令上传,且避免每次都要输入密码
1、设置 SSH 密钥认证:
在本地机器生成 SSH 密钥对(如果还没有生成), 打开 PowerShell 或 CMD 并运行以下命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

按提示操作(一路回车即可),生成 C:\Users\YourUsername.ssh\id_rsa 和 id_rsa.pub 文件。

2、查看生成的公钥:

使用记事本或其他文本编辑器打开 id_rsa.pub 文件,复制其内容。

3、将公钥添加到远程服务器:
使用 SSH 登录到远程服务器:

ssh username@server

username:用户名
server:IP地址
在服务器上,编辑(或创建) ~/.ssh/authorized_keys 文件:

mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys

将第2步复制的公钥内容粘贴到 authorized_keys 文件中,然后保存并退出编辑器。

4、设置合适的权限:
在服务器上,设置 ~/.ssh 和 authorized_keys 的权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

5、确保 SSH 密钥认证设置正确
测试无密码登录:确保可以通过以下命令无密码登录远程服务器:

ssh username@server

6、本地新建一个upload_files.bat文件,记事本打开后编辑内容如下:

@echo off
setlocal

REM 本地文件夹路径
set "LOCAL_DIR=C:\path\to\local\folder"

REM 远程服务器信息
set "REMOTE_USER=username"
set "REMOTE_HOST=server"
set "REMOTE_DIR=/path/to/remote/folder"

REM 创建远程目录(如果不存在)
echo Creating remote directory %REMOTE_DIR% if it does not exist
ssh %REMOTE_USER%@%REMOTE_HOST% "mkdir -p %REMOTE_DIR%"

REM 遍历本地文件夹中的所有文件并上传
for %%F in ("%LOCAL_DIR%\*") do (
    if exist "%%F" (
        set "FILENAME=%%~nxF"
        echo Checking if %FILENAME% exists on %REMOTE_HOST%:%REMOTE_DIR%
        
        REM 检测远程服务器目录中是否存在该文件
        ssh %REMOTE_USER%@%REMOTE_HOST% "if [ -f %REMOTE_DIR%/%FILENAME% ]; then echo EXISTS; fi" > NUL 2>&1
        
        if %errorlevel% == 0 (
            echo %FILENAME% already exists on remote server, skipping upload.
        ) else (
            echo Uploading %%F to %REMOTE_USER%@%REMOTE_HOST%:%REMOTE_DIR%
            :retry
            scp "%%F" %REMOTE_USER%@%REMOTE_HOST%:%REMOTE_DIR%
            if %errorlevel% neq 0 (
                echo Upload failed, retrying...
                goto retry
            )
            echo Upload of %%F succeeded.
        )
    )
)

endlocal
pause

保存后双击运行

二、后续
删除不再使用的密钥对
当你不再使用某个密钥对时,最好将其从本地和远程服务器中删除,以防止潜在的安全风险。

删除本地私钥和公钥文件:C:\Users\YourUsername.ssh\id_rsa 和 id_rsa.pub 文件

从远程服务器删除公钥:

使用SSH连接到远程服务器,然后编辑 ~/.ssh/authorized_keys 文件,删除不再使用的公钥条目。

ssh user@remote_server
nano ~/.ssh/authorized_keys

在编辑器中找到对应的公钥条目并删除,然后保存文件并退出。

相关文章

  • Git Push fatal: The remote end h

    在 .git/config 文件中加入 一次提交过多或文件过大,导致上传内容过大,设置git上传限制为500M

  • scp 上传 下载 文件

    linux: scp 上传 下载 文件 linux 中的ssh命令: scp 可以用来上传本地文件到远程服务器 或...

  • CentOS文件上传与下载命令

    文件上传与下载 参考网页 上传文件到服务器 1、mac上传文件到Linux服务器 scp 文件名 用户名@服务器i...

  • 关于“分块上传/断点续传“的整理

    上传/下载文件过大(如>1G)时,要考虑到网络中断的情况。目前HTTP协议的网络请求本身就已经具备了分片上传能力,...

  • JavaWeb - 文件上传和下载

    文件上传和下载的实质:文件的拷贝 文件上传:从本地拷贝到服务器磁盘上 客户端需要编写文件上传表单---->服务...

  • Linux scp 文件传输

    上传本地文件到服务器 下载服务器文件到本地

  • 使用ssh对 文件进行上传下载

    文件上传 将本地文件上传到服务器 将服务器中的文件下载到本地 从服务器下载整个目录 上传目录到服务器

  • ASP.NET上传附件配置问题

    问题: ASP.NET使用asp:FileUpload控件上传附件的时候,当你上传的附件过大或过多的时候通常都会出...

  • scp 服务器传输文件

    命令格式 命令参数 上传目录到服务器 上传本地文件到服务器 从服务器上下载文件 下载文件我们经常使用wget,但是...

  • 断点续传

    一、前端大文件上传文件的痛点 1、文件过大会导致带宽资源紧张,请求速度下降 ;2、如果上传过程中服务中断、网络中断...

网友评论

      本文标题:网络问题,下载很快,上传很慢,甚至不能上传过大或过多的文件到服务

      本文链接:https://www.haomeiwen.com/subject/kmjnqjtx.html