You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过batch脚本自动化PuTTY隧道配置实现Redshift数据仓库连接

PuTTY 自动创建Redshift SSH隧道Batch脚本实现方案

实现核心原理

PuTTY官方自带命令行工具plink.exe,支持用参数直接传递所有GUI配置项,无需手动操作界面填写,Batch脚本只需要封装plink的调用逻辑即可,参数和手动配置的对应关系如下:

  • -l 跳板机用户名 对应步骤2的「Auto-login username」配置
  • -A 参数对应步骤3的「Allow agent forwarding」开启选项
  • -L 本地源端口:Redshift集群地址:Redshift端口 对应步骤4的端口隧道添加配置
  • plink命令末尾追加的远程命令对应步骤5的两条固定命令执行

前置准备

  • 把PuTTY安装目录下的plink.exe放到系统PATH路径,或者和Batch脚本放在同一个文件夹
  • 用户本地提前打开Pageant并添加对应SSH私钥,避免脚本运行时重复输入密钥密码
  • 提前确认好跳板机地址、Redshift集群地址端口、远程执行的固定命令,可直接写死在脚本中减少用户输入成本

参考脚本实现

@echo off
setlocal enabledelayedexpansion

:: 可预先配置的固定参数,修改为实际业务值即可
set JUMPHOST=你的跳板机地址 例:jump.company.com
set REDSHIFT_ADDR=Redshift集群地址 例:xxx.xxx.us-east-1.redshift.amazonaws.com
set REDSHIFT_PORT=5439
:: 两条固定远程命令,多命令用分号分隔,最后加sleep保持隧道不中断
set REMOTE_COMMANDS=echo "隧道初始化完成"; sleep 365d

:: 入参校验
if "%~1"=="" (
    echo 错误:请传入跳板机登录用户名作为第一个参数
    echo 调用示例:%~n0 你的用户名 本地源端口
    echo 例:%~n0 wangwu 5439
    pause
    exit /b 1
)
if "%~2"=="" (
    echo 错误:请传入本地映射源端口作为第二个参数
    echo 调用示例:%~n0 你的用户名 本地源端口
    echo 例:%~n0 wangwu 5439
    pause
    exit /b 1
)

set SSH_USER=%~1
set LOCAL_PORT=%~2

echo 正在创建Redshift隧道,本地端口%LOCAL_PORT%已映射至%REDSHIFT_ADDR%:%REDSHIFT_PORT%
echo 请勿关闭当前窗口,关闭即中断隧道连接
plink.exe -A -l %SSH_USER% %JUMPHOST% -L %LOCAL_PORT%:%REDSHIFT_ADDR%:%REDSHIFT_PORT% %REMOTE_COMMANDS%

endlocal

使用说明

  • 首次运行脚本时会弹出跳板机主机密钥确认提示,选择「是」即可,后续运行不会重复弹出
  • 如需后台静默运行,可在plink命令前加start /min,最小化运行窗口
  • 隧道使用完成后直接关闭脚本运行的窗口即可终止连接

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 10:54:01