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

如何从Linux服务器向Windows执行SSH、SCP操作及Jenkins调用方法

Linux到Windows单向SSH/SCP操作及Jenkins调用方案

一、Linux侧直接运行命令的可行性

首先需要先完成Windows目标机器的前置配置:

  • 目标Windows机器需安装并启动OpenSSH服务器:Win10 1809+、Win11、Windows Server 2019+系统自带该组件,可通过「设置→应用→可选功能→添加功能」搜索安装,安装后启动sshd服务并设置开机自启,同时放行系统防火墙的22端口入站规则。
  • 若需要免密登录,将Linux发起端的SSH公钥(默认路径~/.ssh/id_rsa.pub)内容,复制到Windows目标机对应用户目录下的.ssh/authorized_keys文件中,同时需删除该文件的所有继承权限,仅保留当前用户的读取权限,避免OpenSSH服务拒绝识别。

命令有效性说明

  1. SSH命令:ssh user@IPaddressWindowsserver 可直接运行,首次连接会提示确认主机指纹,输入yes后输入对应Windows用户的密码即可登录,配置免密后无需输入密码。
  2. SCP命令:你给出的命令路径格式有误,Windows的盘符在SCP请求中需去掉冒号,正确命令为:
    scp /home/ubuntu/myfile username@IP_of_windows_machine:/C/Users/Anshul/Desktop
    注:如果目标路径包含空格,需要用引号包裹路径部分避免解析错误。

二、Jenkins流水线调用说明

首先需要明确你流水线的运行节点:

  • 如果流水线任务是跑在Linux节点上:不能用bat步骤,bat是Windows节点的专属执行步骤,需要替换为sh步骤,示例如下:
sh 'ssh user@IPaddressWindowsserver "你要执行的Windows命令"'
sh 'scp /home/ubuntu/myfile username@IP_of_windows_machine:/C/Users/Anshul/Desktop'

注意:要保证运行Jenkins进程的Linux用户家目录下有正确的SSH私钥,否则会出现权限报错。

  • 如果流水线任务确实跑在Windows节点上:你写的bat步骤本身语法没问题,但存在两个前提限制:
    1. 该Windows节点必须安装了OpenSSH客户端(或Git for Windows等自带SSH/SCP命令的工具),且命令路径已加入系统环境变量。
    2. 你写的SCP命令中/home/ubuntu/myfile是Linux服务器路径,Windows节点无法直接读取,需要先将该文件同步到Windows节点本地后再执行SCP传输。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:45:02