我想在机器 B 上运行位于我的开发机器上的脚本,该脚本只能通过机器 A 访问。
因此,我的开发机器 --(SSH)--> 机器A --(SSH)--> 机器B
我该怎么做?该脚本也接受参数。
答案1
你想要的是隧道通过跳转主机或者代理人根据您具体想要做什么,有几种方法可以做到这一点,但我相信在本地 ~/.ssh/config 中放入这样的内容应该适合您的情况:
Host b
ProxyJump a
使用此配置进行测试:
Host localhost
ProxyJump 127.0.0.1
它的工作原理如下(修剪以仅显示跳跃):
$ ssh -v localhost 'ls ~'
Authenticated to 127.0.0.1 ([127.0.0.1]:22).
Authenticated to localhost (via proxy).
[ls output]
答案2
假设您在远程开发机器中有以下脚本。
remote-machine-x$ cat /home/userA/dev/zeebash
#!/bin/bash
echo "$@" | mail -s subject [email protected]
要从本地机器执行此脚本,假设您已经设置了 ssh-key,您可以这样做:
p="hi man" ; ssh userA@remote-machine-x "/home/userA/dev/zeebash "$p" "