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

如何一次性SSH登录多台服务器并批量并行执行命令?

方案总览

分为两个部分实现你的需求,第一部分是纯PowerShell脚本实现批量打开SSH登录窗口,第二部分是现成工具同时满足批量登录+并行执行命令的需求。

1 PowerShell批量打开SSH登录窗口实现

1.1 前置准备

  • 安装sshpass工具:用于ssh自动填充密码,Windows平台可通过Chocolatey执行choco install sshpass -y完成安装,也可以自行下载编译好的sshpass.exe放到系统PATH目录下。
  • 准备服务器列表文件:新建servers.txt,每行写入一台服务器的IP/域名,示例如下:

192.168.1.10
192.168.1.11
192.168.1.12
...

1.2 完整脚本

新建脚本文件BatchSSHLogin.ps1,内容如下:

# 配置项,请自行修改
$loginUser = "你的统一用户名"
$loginPass = "你的统一登录密码"
$serverListPath = "C:\你的路径\servers.txt"

# 读取服务器列表
$servers = Get-Content -Path $serverListPath

foreach ($server in $servers) {
    # 启动独立PowerShell窗口执行SSH登录
    Start-Process powershell.exe -ArgumentList @(
        "-NoExit",
        "-Command",
        "sshpass -p '$loginPass' ssh -o StrictHostKeyChecking=no $loginUser@$server"
    )
}

1.3 注意事项

  • 脚本中的-o StrictHostKeyChecking=no参数用于跳过首次登录的主机密钥确认提示,如果你已经手动确认过所有主机的密钥,可以删掉该参数提升安全性。
  • 明文存储密码有泄露风险,建议优先改用SSH密钥登录,配置密钥后不需要sshpass,直接执行ssh $loginUser@$server即可自动登录。

2 同时支持批量登录+并行执行命令的工具

推荐使用本地免费工具WindTerm,无需额外配置即可满足所有需求:

  • 支持批量导入服务器列表,一键同时登录所有选中的服务器,自动打开独立会话窗口
  • 自带「同步输入」功能,开启后你在任意一个会话窗口输入的命令,会自动同步发送到所有已登录的服务器执行,执行结果独立在对应窗口显示
  • 完全开源无广告,支持Windows/macOS/Linux全平台
    如果仅需要批量执行命令不需要交互式窗口,也可以使用命令行工具pssh,指定服务器列表即可并行执行命令并统一返回所有主机的执行结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:18:04