前言
本文将分享在windows环境下,如何编写DOS脚本来上传文件到远程服务器
使用工具
这里我们需要下载:PuTTY(下载地址)
PuTTY是由Simon Tatham开发的免费、开源的SSH和Telnet客户端。它允许用户通过命令行使用SSH或Telnet协议连接到其他计算机。该应用程序也可以通过串行端口和传统互联网协议(如Telnet)进行通信。
下载安装完成之后,目录结构如下:
操作步骤
生成公钥和私钥
为了使用 SSH 密钥进行身份验证,你需要生成一对 SSH 密钥,包括私钥和公钥。以下是生成 SSH 密钥的简要步骤:
- 生成 SSH 密钥:
运行puttygen.exe
,这是一个图形界面工具。
在Key
部分,点击Generate
按钮,移动鼠标直到密钥生成完成。
生成之后的界面如下:
- 在
Key comment
中输入一个标识性的注释,用于说明这段密钥的作用(可选) - 设置密码以保护私钥,避免私钥被窃取(可选,但推荐)
- 点击
Save private key
保存私钥(保存为 .ppk 文件) - 点击
Save public key
保存公钥(保存为 .pub 文件) - 将
Key
部分生成的公钥内容复制保存,这个后面需要复制到服务器上
- 在服务器上注册公钥
- 打开用户主目录下的
~/.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
文件,运行此脚本将会上传本地文件到远程服务器的指定目录中。