在另一台可通过 ssh 访问的机器上运行脚本

在另一台可通过 ssh 访问的机器上运行脚本

我想在机器 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" "

相关内容