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

Windows10通过bat文件连接Linux服务器执行bash命令及自动登录问题

Windows 10批处理自动SSH执行远程Linux命令实现方案

基础无密码实现(最推荐,生产环境可用)

前置配置

  • 首先开启Windows 10自带的OpenSSH客户端:进入「设置-应用-可选功能」,搜索确认OpenSSH客户端已安装,未安装的话点击「添加功能」安装即可。
  • 本地生成SSH密钥对:打开CMD/PowerShell执行ssh-keygen -t rsa,全程按回车使用默认配置,生成的公钥默认存储在C:\Users\你的用户名\.ssh\id_rsa.pub。
  • 将公钥内容追加到远程Linux服务器的~/.ssh/authorized_keys文件中,同时在远程服务器执行以下命令配置正确权限:
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
    配置完成后本地执行ssh 用户名@服务器IP可以直接登录,无需输入密码。

批处理示例

@echo off
echo 开始执行远程命令
:: 远程执行指定bash命令,执行完成后自动断开连接
ssh root@192.168.3.20 "cd /data/backend && docker compose up -d && echo 服务启动完成"
echo 远程命令执行完毕,开始执行本地后续命令
:: 此处填写你需要执行的本地命令,例如:
cd D:\本地项目目录
git pull
pause

自动填充密码实现(仅建议测试环境使用)

原生OpenSSH客户端不支持直接通过命令行参数传递密码,需要借助第三方工具实现,最常用的是PuTTY配套的plink命令行工具:

  • 下载plink.exe放到批处理文件同目录,或者配置到系统环境变量Path中
  • 批处理示例:
@echo off
echo 正在带密码连接远程服务器
plink -ssh root@192.168.3.20 -pw 你的登录密码 "cd /data && ls -l"
echo 远程执行完成,继续本地操作
:: 后续本地命令
pause

注意:该方案会将服务器密码明文写在批处理文件中,存在极高的泄露风险,仅可在内网测试环境使用,禁止用于生产环境

注意事项

  • 首次连接服务器需要先手动执行一次SSH连接,输入yes保存服务器host密钥,否则批处理会卡在交互确认环节无法自动执行。
  • 如果需要执行多条复杂的远程命令,建议将命令整理为远程服务器上的.sh脚本,批处理中直接调用该脚本即可,避免引号嵌套引发的语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:18:03