我有一个跳转服务器,在另一台服务器上运行命令时需要它作为桥梁。
我在我的 ssh 配置中将跳转服务器设置为,hopping
并在跳转服务器上将最终目的地设置为lb3
。
ssh -t hopping ssh lb3
上述命令有效。我到达了最终目的地,并且我的终端是交互式的。
然而,当我想要运行更复杂的命令时,我似乎无法正确转义......
例如,我正在尝试运行这个:
ssh -t hopping ssh lb3 "varnishadm -S /opt/varnish_secret -T 127.0.0.1:6082 ban 'req.url ~ .'"
错误信息:
Command failed with error code 106 expected conditional (~, !~, == or !=) got "/home/username"
我尝试了几种不同的逃脱方法,但我不能说我真的知道在这种情况下我在做什么。有没有更有经验的人知道我需要逃脱什么才能成功?
答案1
就在我发布问题之前,stackoverflow 上的一个建议指向了我这个答案
我根据该答案更改了我的命令,现在这就是我所拥有的并且它可以工作:)
ssh -t hopping "command; ssh -t lb3 'command; varnishadm -S /opt/varnish_secret -T 127.0.0.1:6082 ban \"req.url ~ .\"'"