前言

本文将分享在windows环境下,如何编写DOS脚本来上传文件到远程服务器

使用工具

这里我们需要下载:PuTTY下载地址

PuTTY是由Simon Tatham开发的免费、开源的SSH和Telnet客户端。它允许用户通过命令行使用SSH或Telnet协议连接到其他计算机。该应用程序也可以通过串行端口和传统互联网协议(如Telnet)进行通信。

下载安装完成之后,目录结构如下:
pFFH0bj.md.png

操作步骤

生成公钥和私钥

为了使用 SSH 密钥进行身份验证,你需要生成一对 SSH 密钥,包括私钥和公钥。以下是生成 SSH 密钥的简要步骤:

  1. 生成 SSH 密钥:
    运行 puttygen.exe,这是一个图形界面工具。
    Key 部分,点击 Generate 按钮,移动鼠标直到密钥生成完成。
    pFFHran.md.png
    生成之后的界面如下:
    pFFHcGV.md.png
  • Key comment中输入一个标识性的注释,用于说明这段密钥的作用(可选)
  • 设置密码以保护私钥,避免私钥被窃取(可选,但推荐)
  • 点击 Save private key 保存私钥(保存为 .ppk 文件)
  • 点击 Save public key 保存公钥(保存为 .pub 文件)
  • Key部分生成的公钥内容复制保存,这个后面需要复制到服务器上
  1. 在服务器上注册公钥
  • 打开用户主目录下的 ~/.ssh/authorized_keys 文件(如果不存在,可以创建它)
  • 将复制的公钥粘贴到 authorized_keys 文件中,并保存,格式如下
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCCKKnh+0SnrxK0NIRLZRXznBfLCxFuqb2tq7qM0zMB/iI0gt8LFnqVn3B9AHnfSLQxQdp6FOOcXVPR72uVsZnhgmSsMatSyO8w/JwxAW1Oz0CCSWRI89SB93v6uVHED41dblF7dUlO3jntUbd8QZ4hkoY+bmvZ5ugSTjeSi12picxdvRue4Jsjumn+RLI2OsndmpQxE9muiIVDSgPrqTzbSQ5vlXOD9H64RAF5VdZiKNEdDsIU+DmFRy4NSDaP+vp8H3bCeSQcG5Fr0AcJnk3KlamCBqjtVdy0CNiZjmNWCAiTUHcpvePu/ouIptf7RRHcZ0nihkZf5Ao3hhQn44Sv7 rsa-key-20240101
  • 现在,你已经生成了 SSH 密钥对,私钥保存在本地,而公钥已经添加到目标服务器。在你的脚本中,指定私钥文件的路径,并确保 SSH 密钥对设置正确,以实现安全的自动身份验证。

编写脚本

@echo off
set PSCP_PATH=C:\path\to\pscp.exe
set SERVER=example.com
set USER=your_username
set PRIVATE_KEY=C:\path\to\private_key.ppk
set LOCAL_FILE=local_file.txt
set REMOTE_DIR=/path/to/remote_directory

"%PSCP_PATH%" -i "%PRIVATE_KEY%" "%LOCAL_FILE%" "%USER%"@"%SERVER%":"%REMOTE_DIR%"

在这个脚本中,我们使用 pscp 命令并指定了以下参数:

  • -i:指定私钥文件路径。
  • "%LOCAL_FILE%":指定本地文件的路径。
  • "%USER%"@"%SERVER%":"%REMOTE_DIR%":指定远程服务器的用户名、地址和目标目录。

确保替换这些变量的值为你的实际信息,并确保 pscp.exe 的路径正确。保存为.bat文件,运行此脚本将会上传本地文件到远程服务器的指定目录中。