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

使用Plink通过跳板机SSH执行命令时出现CLIXML错误求助

解决Plink嵌套SSH执行命令时的CLIXML错误

嘿,我帮你捋清楚这个问题哈~你遇到的CLIXML格式错误,本质是命令的引号嵌套逻辑不对,再加上如果跳板机默认用PowerShell作为shell的话,它会自动把命令输出序列化成CLIXML格式(这是PowerShell的远程输出默认格式),才导致了这个奇怪的错误。

下面给你几个靠谱的解决办法:

1. 修正引号嵌套,正确传递目标机命令

你原来的命令里,把"cd .."单独放在外面,导致跳板机的shell没有把它识别成ssh命令的一部分。正确的做法是把要在目标机执行的命令作为ssh的参数,用单引号或者转义双引号包起来,整个ssh命令作为一个完整的字符串传给Plink:

plink -load "puttyProfile" -pw password "ssh admin@address 'cd ..'"

如果跳板机用的是bash类shell,也可以用转义双引号的写法:

plink -load "puttyProfile" -pw password "ssh admin@address \"cd ..\""

如果需要执行多个命令,用分号或者&&连接就行,比如切换目录后查看内容:

plink -load "puttyProfile" -pw password "ssh admin@address 'cd .. && ls -l'"

2. 强制跳板机用bash执行命令(如果PowerShell是元凶)

如果你的跳板机默认shell是PowerShell,它会把输出序列化成CLIXML,这时候可以指定用bash来执行整个ssh命令(前提是跳板机安装了bash):

plink -load "puttyProfile" -pw password "bash -c 'ssh admin@address \"cd ..\"'"

3. 保持目标机会话并切换到指定目录

如果你的需求不是只执行cd命令就退出,而是想进入目标机的交互式shell并默认在上级目录,记得给ssh加上-t参数分配伪终端,然后用exec bash替换当前shell,这样目录切换会生效:

plink -load "puttyProfile" -pw password "ssh -t admin@address 'cd .. && exec bash'"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:12:34