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


0

我想在机器B上的开发机器上运行一个只能通过机器A访问的脚本。

所以,我的开发机器 - (SSH) - > machineA - (SSH) - > machineB

我怎么做?该脚本也需要参数。


嗨hebbo。我希望我的密切投票不会让你删除另一个问题,这不是我的意图。我将此标记为重复,因为这基本上是原始问题的一个子集(如何通过跳转主机运行命令),但我正在为它编写答案,因为那里有一个有趣的报价相关问题同样。我将在此处留下此链接,以防您想要删除问题,但仍想了解引用。
l0b0

Answers:


0

你想要的是通过跳转主机代理隧道。有几种方法可以根据你想要做的事情做到这一点,但我相信在本地〜/ .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]

我想如果你再解释一下你的答案,那可能会有用。我对sshd配置不是很熟悉...所以我不知道这些配置中的哪一个去了。
hebbo

1
这更清楚吗?
l0b0

这更清楚吗?
zee

-1

假设您在远程开发机器中有以下脚本。

remote-machine-x$ cat /home/userA/dev/zeebash
#!/bin/bash

 echo "$@" | mail -s subject mygmailaccount@gmail.com

要从本地计算机执行此脚本,假设您已经设置了ssh-key,则可以使用以下内容执行此操作:

p="hi man" ; ssh userA@remote-machine-x  "/home/userA/dev/zeebash   "$p" "

我认为你不明白这个问题。
hebbo

问题是“在通过ssh通过另一台机器访问的另一台机器上运行脚本”。如果您的意思是其他,请解释。
zee

@zee OP谈论三台机器 - 本地机器,A(代理主机)和B(服务器机器)。他们希望通过 A到B 进行SSH ,然后在一个命令中在B上运行脚本。我的解决方案做到了。
l0b0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.