Executa um script em outra máquina acessível através de outra máquina através do ssh

0

Eu gostaria de executar um script localizado na minha máquina de desenvolvimento na máquina B que só é acessível via máquina A.

Então, minha máquina de desenvolvimento - (SSH) - > machineA - (SSH) - > machineB

Como faço isso? O script também leva argumentos.

    
por hebbo 27.04.2018 / 21:43

2 respostas

0

O que você deseja é um túnel por meio de um host de salto ou proxy . Existem várias maneiras de fazer isso com base no que exatamente você está tentando fazer, mas acredito que colocar algo assim em ~ / .ssh / config localmente funcione para o seu caso:

Host b
        ProxyJump a

Testado com esta configuração:

Host localhost
    ProxyJump 127.0.0.1

E funciona assim (aparado para mostrar apenas o lúpulo):

$ ssh -v localhost 'ls ~'
Authenticated to 127.0.0.1 ([127.0.0.1]:22).
Authenticated to localhost (via proxy).
[ls output]
    
por 27.04.2018 / 22:25
-1

Digamos que você tenha o script abaixo na máquina de desenvolvimento remoto.

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

 echo "$@" | mail -s subject [email protected]

Para executar este script a partir da máquina local, uma vez que você já configurou a chave ssh, você pode fazê-lo com algo parecido com isto:

p="hi man" ; ssh userA@remote-machine-x  "/home/userA/dev/zeebash   "$p" "
    
por 27.04.2018 / 22:34